📜  autofixture 忽略属性 - C# (1)

📅  最后修改于: 2023-12-03 15:13:33.741000             🧑  作者: Mango

使用 Autofixture 忽略属性

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 方法保留默认值。