📅  最后修改于: 2023-12-03 15:13:33.741000             🧑  作者: Mango
Autofixture 是一个用于 C# 的开源自动化测试库,可以自动生成测试数据。但有时我们可能不希望自动生成某些属性值,这就需要使用 Autofixture 的 Ignore 属性。
我们可以使用 Autofixture 的 Ignore 属性来忽略单个属性:
fixture.Customize<MyClass>(c => c.Without(x => x.MyProperty));
上述代码将忽略 MyClass 类中的 MyProperty 属性。
我们也可以通过多次调用 Without 方法来忽略多个属性:
fixture.Customize<MyClass>(c => c
.Without(x => x.MyProperty)
.Without(x => x.AnotherProperty)
);
上述代码将忽略 MyClass 类中的 MyProperty 和 AnotherProperty 属性。
有时我们可能希望忽略一个类中所有可写属性,可以通过下面的代码实现:
fixture.Customize<MyClass>(c => c
.OmitAutoProperties()
);
上述代码将忽略 MyClass 类中所有可写属性。
有时我们希望保留某个属性的默认值,而不是自动生成。可以使用 UseValue 方法来实现:
var expected = "default";
fixture.Customize<MyClass>(c => c
.With(x => x.MyProperty, expected)
);
上述代码将 MyClass 类中的 MyProperty 属性设置为 "default"。
总之,使用 Autofixture 的 Ignore 属性,可以轻松忽略单个或多个属性,也可以忽略一个类中的所有可写属性。此外,还可以通过 UseValue 方法保留默认值。