问题描述
我正在使用 AutoFixture 和 automoq 在这样的单元测试中模拟我的依赖项
expo start
我希望行 public class MyObject
{
public string Value { get; set; }
}
public interface IMyService
{
MyObject GetMyObject();
}
public class Tests
{
[Fact]
public void Mytest()
{
var fixture = new Fixture().Customize(new automoqCustomization());
var myService = fixture.Create<Mock<IMyService>>();
// I want myObject to be null,but I'm getting a Mock<MyObject> instead
var myObject = myService.Object.GetMyObject();
}
}
返回 var myObject = myService.Object.GetMyObject();
,但它返回一个 null
值。我知道我可以执行 Mock<MyObject>
来明确告诉它返回 null,但是我在整个测试过程中都调用了许多类似的方法,我希望它们默认返回 null,而不必显式调用 {{ 1}} 在他们身上。
有没有办法设置夹具让所有方法默认返回 myService.Setup(e => e.GetMyObject()).Returns((MyObject)null);
?
解决方法
评论中的建议很接近。缺少的部分是将 here \n is \r an example\ of a text\ to test
here \n is \r an example of a text to test
上的 CofnigureMembers
属性设置为 AutoMoqCustomization
,以便 AutoFixture 可以解析成员的实例。
true