空虚的集合

coc*_*lla 3 autofixture

在这个测试中,我预计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);
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*ann 5

这是在AutoFixture 3.0中设计的.但是,如果您希望枚举为空,则也可以配置它.

如果您明确只想要IEnumerable<IComparable>(但不是其他集合)为空,则更简单的方法是:

fixture.Inject<IEnumerable<IComparable>>(new IComparable[0]);
Run Code Online (Sandbox Code Playgroud)

OmitAutoProperties控制是否填充对象属性(和字段).它不会影响集合的大小.(IEnumerable<T>定义没有可写属性.)

RepeatCount控制集合的大小,但正如前面提到的问题报告,您不能设置RepeatCount为0(再次设计).