2016-12-08 1 views
0

nUnit 3.4.1 사용.TestCaseSource 컬렉션에서 사용되는 컬렉션 어설 션 전략은 다음과 같습니다.

까지 새로운 행 TestCaseSourceTestCaseData 항목리스트를 사용 :

내 단위 테스트
new TestCaseData(new [] {"value1", "value2"}).Returns(new [] {"value2", "value1"}) 

입력 데이터 모양 배열 복귀시 : Returns

new [] {"value1", "value2"} 

을 nUnit이 동일한 순서를 내포하는 CollectionAssert.AreEqual을 사용하고 있다고 가정하기 때문에 위 테스트에서 실패했습니다.

TestCaseData 초기화에 추가 매개 변수를 사용하여 시도 대신에 CollectionAssert.AreEquivalent, 그리고 내가 그 동작을 사용자 정의 할 수

을했다?

답변

0

동작을 구성 할 수 없습니다. 유창한 Returns 방법은 ExpectedResult과 동일하게 취급됩니다. NUnit은 동등성 만 검사합니다. NUnit code that handles this

if (testMethod.HasExpectedResult) 
    NUnit.Framework.Assert.AreEqual(testMethod.ExpectedResult, result); 

해결

번째 인자로 기대 값을 전달하고 CollectionAssert.AreEquivalent 올바른 사용 하나, 비교적 정직. NUnit은 임의의 어설 션을 사용할 수 있도록 ExpectedResult의 의미를 변경하지 않습니다. 의미 적 의미가 매우 비슷하기 때문에 AreEqualAreEquivalent을 볼 수는 있지만 내부적으로 매우 다릅니다.

+0

내가 그랬다. 이 동작을 구성하는 것이 좋을까요? 감사! 나는 그것들이 매우 다르다는 것을 이해하지만, 단순화 된 기본값으로 평등 한 enum을 사용하면 사용되는 것을 바꿀 수있다. –

+0

언제든지 문제를 입력하십시오. 초기 감정은 우리가 지원하지 않을 것이라는 점이지만, 충분한 사용자들이 지원한다면 우리는 그것을 고려할 것입니다. –