在这个测试中,我预计dummyVar是空的。但是,无论我将OmitAutoProperty设置为什么,都不是。
这是正确的行为吗?为什么?什么是 AutoFixture 创建空虚拟集合的方式?
[Fact]
public void ShouldBeEmpty()
{
var fixture = new Fixture();
fixture.Customize(new AutoMoqCustomization());
fixture.OmitAutoProperties = true;
var dummyVar = fixture.Create<IEnumerable<IComparable>>();
Assert.Empty(dummyVar);
}
答案 0 :(得分:5)
这是by design in AutoFixture 3.0。但是,如果您希望枚举为空,you can configure that as well。
如果您明确只想要IEnumerable<IComparable>
(但不是其他集合)为空,则更简单的方法是:
fixture.Inject<IEnumerable<IComparable>>(new IComparable[0]);
OmitAutoProperties
控制是否填充对象属性(和字段)。它不会影响集合的大小。 (IEnumerable<T>
定义了无可写属性。)
RepeatCount
控制集合的大小,但是当the previously mentioned issue报告时,您无法将RepeatCount
设置为0(再次按设计)。