使用 AutoFixture,我可以使用 Create 方法轻松创建数据对象的实例,如下所示:
_fixture.Create<FilterItems>()
使用这种技术,我可以保护将来可能发生的构造函数中的任何更改,但它也会填写所有在这种情况下(因为它是过滤器的集合)不需要的属性。
有没有办法只告诉 AutoFixture 创建对象,但不填写任何属性?
我知道有一个无方法可以跳过一个字段,但使用这意味着我必须不断添加到它,而我宁愿从一个空对象开始,如果测试需要它就添加到它。
最佳答案
有很多方法可以做到这一点。
您可以将其作为一次性操作进行:
var fi = fixture.Build<FilterItems>().OmitAutoProperties().Create();
您还可以自定义
fixture
始终省略特定类型的自动属性的实例:fixture.Customize<FilterItems>(c => c.OmitAutoProperties());
或者您可以完全关闭自动属性:
fixture.OmitAutoProperties = true;
如果您正在使用单元测试 Glue 库之一,例如 AutoFixture.Xunit2 ,您也可以声明性地执行此操作:
[AutoData]
public void MyTest([NoAutoProperties]FilterItems fi)
{
// Use fi here...
}
关于unit-testing - 如何使用 AutoFixture 创建对象但不填写任何属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38565445/