14得票1回答
使用FakeItEasy,如何获取设置在伪造对象上的属性值?

我将使用FakeItEasy来捕获一个虚拟对象上属性值的设置: 首先是接口:interface ISomeInterface { int MyProperty {get;set;} } 接着是一个单元测试的片段:var myObject = A.Fake<ISomeInterf...

13得票2回答
如何在不使用魔术字符串的情况下获取传递给FakeItEasy模拟对象的参数?

我过去几年一直使用Moq来进行模拟,但是在看了FakeItEasy之后,我想尝试一下这个工具。 我经常想测试一个方法是否使用了正确的参数调用,但我发现使用FakeItEasy没有令人满意的方法来实现这一点。 以下是我要测试的代码: public class WizardStateEn...

11得票5回答
如何在单元测试中使用FakeItEasy和HttpClient?

我正在尝试弄清如何在HttpClient中使用FakeItEasy,假设有以下代码:public Foo(string key, HttpClient httpClient = null) { .. } public void DoGet() { .... if (_htt...

10得票4回答
伪造/模拟接口会导致“没有默认构造函数”错误,这是怎么回事?

我正在尝试编写一个存储库实现的单元测试。该存储库使用RavenDB作为数据库。对于单元测试,我想模拟RavenDB部分。为了创建模拟(伪造对象),我使用FakeItEasy。由于RavenDB API是通过接口访问的,因此我认为在模拟/伪造方面不会有任何问题。 然而,在尝试实例化特定模拟对象...

10得票3回答
可以模拟/伪造扩展方法吗?

我正在使用控制器扩展,并尝试使用FakeItEasy(v 1.7.4)进行模拟,代码如下:A.CallTo(() => controller.RenderView(A<string>.Ignored,A<object>.Ignored,null)).Returns...

9得票3回答
如何使用FakeItEasy从方法中返回Null值

我使用FakeitEasy模拟了一个服务,现在想要调用它的方法。以下是代码: var client = container.Resolve<MyService>(); A.CallTo(() => client.GetUserProfile(...

9得票2回答
FakeItEasy - 是否可以拦截一个方法并替换为我自己的实现?

I have the following interface : public interface IOuputDestination { void Write(String s); } 在我的单元测试中,我将其模拟如下: var outputDestination = A.F...

8得票1回答
表达式/函数重载的编译器错误

屏幕截图已经说明了大部分情况。如屏幕截图所示,我有重载项。当将字符串用作第二个参数时,编译器应该能够确定第一个参数只能是Func而不是表达式。但是,编译器报错,说“具有语句主体的lambda表达式无法转换为表达式树”。 为什么编译器不能确定正确的重载项? 显式转换没有帮助。有效的方法是创建...

8得票2回答
从FakeItEasy的A.CallTo()返回不同的对象

为了我的测试,我需要第一次调用存根返回一个对象,下一次调用返回另一个不同的对象。我在其他模拟对象框架中看到过这种情况,通常是在record()块中实现的,但我还没有弄清楚如何在FakeItEasy中实现。FakeItEasy是我们公司规定使用的框架,我正在使用AutoFixture生成伪造对象...

7得票1回答
FakeItEasy:代理方法调用真实实现

我想要将对一个假对象的调用代理到实际的实现中。这样做的原因是我想要能够使用Machine.Specifications的WasToldTo和WhenToldTo,而这些只适用于接口类型的伪造对象。 因此,我正在执行以下操作,将所有对我的真实对象的调用代理: public static TF...