gpt4 book ai didi

unit-testing - 如何使用 AutoFixture 创建对象但不填写任何属性

转载 作者:行者123 更新时间:2023-12-03 15:25:18 25 4
gpt4 key购买 nike

使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com