如何为以下单元测试设置 AutoFixture:
[Theory, ... ] // <- what goes here?
public void MyTest(int param1, string param2)
{
...
}
第一个参数可以采用随机生成的整数,因此 AutoFixture 自然适合。 第二个不能以同样的方式。我需要第二个从编译时未知的动态生成的值列表中获取值。我需要将其告知 AutoFixture,但我不知道如何告知。
编辑:
在我的具体场景中,我需要的是字符串参数是某种类型的属性名称。我想对 AutoFixtue 说:“嘿,对于 param2,从这个列表中取出一个随机字符串,其中列表是 myType.GetPropertyNames()。
AutoFixture 是否支持这种场景?
最佳答案
如果您需要随机值,只需使用[AutoData]
:
[Theory, AutoData]
public void MyTest(int param1, string param2)
{
...
}
如果您需要一些预定义的测试数据,您可以使用 [InlineAutoData]
.在下面的示例中,string
参数 param1
将获取属性中指定的值。 int
参数 param2
总是随机的:
[Theory]
[InlineAutoData("predefined_string_1")]
[InlineAutoData("predefined_string_2")]
public void MyTest(string param1, int param2)
{
...
}
关于c# - AutoFixture 单元测试参数设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41019941/