我将 AutoFixture 与 AutoMoq 一起使用。我尝试创建一个具有 getter 但没有 setter 的属性的类的假实例。我希望 AutoFixture 能够配置模拟,因此即使没有设置器,它也会返回给定的值。
我的代码是这样的:
var data = new List<Data>() { new Data() };
var userManager = fixture.Build<IRepository>()
//.With(x => x.Data, data)
.CreateAnonymous();
Mock.Get(userManager).Setup(x => x.Data).Returns(data);
不幸的是,“With”方法在这种情况下不起作用,因为自动夹具说 Data 没有任何设置器,这为什么我必须在之后通过直接调用模拟来设置值。
有没有办法让自动夹具自己做到这一点,所以我不需要最后一行代码?
编辑:我犯了一个错误,代码示例不起作用。它应该是
var data = new List<Data>() { new Data() };
var userManager = fixture.CreateAnonymous<IRepository>();
Mock.Get(userManager).Setup(x => x.Data).Returns(data)
不过,如果有假实例的 with 方法会很好。