6

我正在尝试编写一个测试用例,它需要一个字符串并期望字符串被拆分。我无法List在 a 中初始化 a 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)
4

1 回答 1

5

即使您的构造函数testmethodTestCaseData构造函数都采用不同paramsTestCaseData解释params:它尝试将它们一对一地映射到正在测试的方法的参数。在您的情况下,NUnit 需要testmethod12 个参数,但您的方法只有两个。这会导致您看到的错误。

要解决此问题,您需要更改构造函数调用,如下所示:

yield return new TestCaseData(
    "hello World"
,   new[] {"h", "e", "l", "l", "o", " ", "W", "o", "r", "l", "d"}
);

现在你只传递了两个参数,第二个是一个必须传递给你的数组params String[] myList

于 2013-06-20T19:48:38.727 回答