带参数的 AutoFixture AutoData
AutoFixture AutoData with arguments
如何为 AutoData
指定参数?
例如我的代码中有以下内容:
var fixture = new Fixture();
fixture.Customizations.Add(
new TypeRelay(
typeof (IOrder),
typeof (Order)));
我想用不同的夹具数据进行多次测试运行。我将如何设置如下内容:
.Customizations.Add()
或 .Build()
/.With
/.Do
以便在使用 AutoData
fixture 时有此指定?
你可以package various repeated AutoFixture customizations into one or more Customizations.
对于特定示例,它看起来像这样:
public class OrderCustomization : ICustomization
{
public void Customize(IFixture fixture)
{
fixture.Customizations.Add(
new TypeRelay(
typeof(IOrder),
typeof(Order)));
}
}
用法:
var fixture = new Fixture().Customize(new OrderCustomization());
var order = fixture.Create<IOrder>();
您可以通过 creating a derived attribute that passes a Fixture instance to the appropriate base class constructor 将它们与 [AutoData]
一起使用。
如何为 AutoData
指定参数?
例如我的代码中有以下内容:
var fixture = new Fixture();
fixture.Customizations.Add(
new TypeRelay(
typeof (IOrder),
typeof (Order)));
我想用不同的夹具数据进行多次测试运行。我将如何设置如下内容:
.Customizations.Add()
或 .Build()
/.With
/.Do
以便在使用 AutoData
fixture 时有此指定?
你可以package various repeated AutoFixture customizations into one or more Customizations.
对于特定示例,它看起来像这样:
public class OrderCustomization : ICustomization
{
public void Customize(IFixture fixture)
{
fixture.Customizations.Add(
new TypeRelay(
typeof(IOrder),
typeof(Order)));
}
}
用法:
var fixture = new Fixture().Customize(new OrderCustomization());
var order = fixture.Create<IOrder>();
您可以通过 creating a derived attribute that passes a Fixture instance to the appropriate base class constructor 将它们与 [AutoData]
一起使用。