【发布时间】:2019-11-26 10:27:18
【问题描述】:
我有一个带有一些只读属性的接口:
interface IItem
{
string Name { get; }
// ... more properties
}
使用Fixture.Create() 方法,我可以使用AutoMoqCustomization 创建单个模拟接口实例,如下所示:
var fixture = new Fixture();
fixture.Customize(new AutoMoqCustomization());
var mockedItem = fixture.Create<IItem>();
但是要使用Fixture.Build().CreateMany() 创建这些接口实例的列表,我不能仅通过执行以下操作来完成:
var mockedItems = fixture
.Build<IItem>()
.With(x => x.Name, "Abc")
.CreateMany();
我需要Build() 的原因是我想为某个属性有一个特定的返回值,而让其余的属性仍然自动生成。但不幸的是,根据文档,当使用 Build() 时,Fixture 上的所有自定义都被绕过了。
我正在使用以下版本:AutoFixture 4.8.0、AutoFixture.AutoMoq 4.8.0 和 Moq 4.9.0。
有没有一种简单的方法来实现这一点而无需定义我自己的ISpecimenBuilder?
【问题讨论】:
标签: c# unit-testing mocking moq autofixture