2013-06-20 8 views
5

문자열을 사용하고 문자열 분할을 예상하는 테스트 케이스를 작성하려고합니다. 내 최종 목표를 달성하기 위해 나를 위해 어떤 방법이 있나요 그러나 내가 인수목록 또는 매개 변수가있는 TestCase

잘못된 번호가

를 제공 얻을, 나는 TestCaseList을 초기화 할 수 없습니다, 그래서 params 인수 TestCaseSource를 사용하여 시도 ?

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

은 모두 당신의 testmethodTestCaseData 생성자 params을하더라도, TestCaseData 다르게 params 해석 : 그것은 테스트중인 일대일 방식의 매개 변수에 그들에게지도하려고합니다. 귀하의 경우 NUnit은 12 개의 매개 변수가있는 testmethod을 기대하지만 메소드에는 2 개만 있습니다. 이로 인해 보게되는 오류가 발생합니다.

이 문제를 해결하려면 다음과 같이 생성자 호출을 변경해야
yield return new TestCaseData(
    "hello World" 
, new[] {"h", "e", "l", "l", "o", " ", "W", "o", "r", "l", "d"} 
); 

지금 당신은 단지 두 개의 인수, 당신의 params String[] myList에 전달해야 배열되는 두 번째 전달된다.

+0

나는 그것을 시험해 보았다. 그리고 그것은 나에게 object initializer에 관해 나에게 소리 쳤다. ... 아마 나는 단지 미쳤을 것이다. 고마워 ... 이제 작동 해! –