使用值数组进行NUnit测试
本文关键字:NUnit 测试 数组 | 更新日期: 2023-09-27 17:49:22
我正在尝试使用NUnit的值属性,以便我可以指定许多不同的输入,而不需要100个单独的测试。
然而,现在我意识到有时我想使用相同的输入集,但在非常不同的测试中,就像下面这样。
是否有一种方法,我可以指定所有的值在一个地方,像一个数组和使用数组的每个值属性?
我想确保测试作为100个单独的测试运行,而不是运行100个值的1个测试。
我已经在Nunit文档中看过了,但是我找不到实现这一点的方法。什么好主意吗?
代码:[Test]
public void Test1([Values("Value1", "Value2", "Value3", ... "Value100")] string value)
{
//Run Test here
}
[Test]
public void Test2([Values("Value1", "Value2", "Value3", ... "Value100")] string value)
{
//Run Test here
}
[Test]
public void Test3([Values("Value1", "Value2", "Value3", ... "Value100")] string value)
{
//Run Test here
}
TestCaseSource
属性在这里是合适的
看到的例子:
private string[] commonCases = { "Val1", "Val2", "Val3" };
[Test]
[TestCaseSource(nameof(commonCases))]
public void Test1(string value)
{
....
}
[Test]
[TestCaseSource(nameof(commonCases))]
public void Test12(string value)
{
....
}
您可以在测试方法上使用FactoryAttribute
,而不是在参数上使用ValuesAttribute
。点击这里了解更多。
亚历山大是对的。FactoryAttribute是API的临时部分。正确的方法是使用TestCaseSourceAttribute。