空虚的集合

时间:2013-07-22 19:31:23

标签: 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);
}

1 个答案:

答案 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(再次按设计)。