C# 带有列表或参数的TestCase
我正在尝试编写一个测试用例,它接受一个字符串,并期望该字符串被拆分。我无法在C# 带有列表或参数的TestCase,c#,nunit,testcase,testcasedata,C#,Nunit,Testcase,Testcasedata,我正在尝试编写一个测试用例,它接受一个字符串,并期望该字符串被拆分。我无法在TestCase中初始化列表,因此我尝试将TestCaseSource与params参数一起使用,但是 提供的参数数量错误 我有什么办法来实现我的最终目标吗 public IEnumerable<TestCaseData> blah { get { yield return new TestCaseData("hello World", "h", "e", "l", "l", "o", " ", "W
TestCase
中初始化列表
,因此我尝试将TestCaseSource
与params
参数一起使用,但是
提供的参数数量错误
我有什么办法来实现我的最终目标吗
public IEnumerable<TestCaseData> blah
{
get
{
yield return new TestCaseData("hello World", "h", "e", "l", "l", "o", " ", "W", "o", "r", "l", "d");
}
}
[TestCaseSource("blah")]
public void testmethod(String orig, params String[] myList)
公共IEnumerable废话
{
得到
{
返回新的测试用例数据(“hello World”、“h”、“e”、“l”、“l”、“o”、“W”、“o”、“r”、“l”、“d”);
}
}
[TestCaseSource(“废话”)]
public void testmethod(String orig,params String[]myList)
即使您的testmethod
和TestCaseData
构造函数都采用params
,TestCaseData
对params
的解释不同:它试图将它们一一映射到被测试方法的参数。在您的例子中,NUnit需要一个带有12个参数的testmethod
,但您的方法只有两个参数。这会导致您看到的错误
要解决此问题,您需要更改构造函数调用,如下所示:
yield return new TestCaseData(
"hello World"
, new[] {"h", "e", "l", "l", "o", " ", "W", "o", "r", "l", "d"}
);
现在您只传递了两个参数,第二个参数是必须传递给
params String[]myList
的数组,我发誓我试过了,它对我大喊对象初始值设定项……也许我快疯了。谢谢…现在可以用了!