我正在尝试运行一些测试用例,但我需要使其中一个参数可选。
我尝试过以下内容但是NUnit忽略了测试并打印了以下“忽略:提供的参数数量错误”
[TestCase(Result = "optional")]
[TestCase("set", Result = "set")]
public string MyTest(string optional = "optional")
{
return optional;
}
是否可以使用可选参数运行测试用例?
答案 0 :(得分:5)
在这种情况下只需进行2次测试,nunit不支持可选参数:
[TestCase("set", Result = "set")]
public string MyTest(string optional)
{
return optional;
}
[TestCase(Result = "optional")]
public string MyTest()
{
return MyTest("optional");
}
答案 1 :(得分:0)
听起来你正试图在这里测试两个不同的东西,所以我会倾向于使用两个单独的测试,因为peer already pointed out。
如果出于某种原因,您确实需要或希望在一次测试中使用它,您可以使用null
或常量作为参数,并添加代码以在测试中处理它。注意不要让测试中的逻辑过于复杂(理想情况下,测试中不应该有任何逻辑......)。
const string NO_VALUE = "Just a const to identify a missing param";
[TestCase(null, Result = "optional")] // Either this...
[TestCase(NO_VALUE, Result = "optional")] // or something like this
[TestCase("set", Result = "set")]
public void MyTest(string optional)
{
// if(optional == null) // if you use null
if(optional == NO_VALUE) // if you prever the constant
{
// Do something
}
else{
// Do something else
}
}