3

在这个测试中,我预计 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);
}
4

1 回答 1

5

这是AutoFixture 3.0 设计的。但是,如果您希望 enumerables 为空,您也可以配置它

如果您明确希望IEnumerable<IComparable>(而不是其他集合)为空,则更简单的方法是执行此操作:

fixture.Inject<IEnumerable<IComparable>>(new IComparable[0]);

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

RepeatCount控制集合的大小,但正如前面提到的问题报告,您不能设置RepeatCount为 0(同样是设计使然)。

于 2013-07-22T20:03:24.743 回答