MSTEST를 사용하여 .NET의 단위 테스트에서 2 개 컬렉션의 내용을 비교하려고합니다. 사물을 간단하게 만들려면 .Sort()를 사용하지 말고 컬렉션을 반복하고 항목을 한 번에 하나씩 비교하기 위해 새롭고 멋진 .Intersect Extension 메서드를 찾았습니다.교차 확장 메서드, 대/소문자 구분이 작동하지 않습니다.
수행하여 잘 작동하는 것 같다 :
이 Assert.AreEqual(expected.Count, actual.Intersect(expected).Count)
그러나, 지금은 대소 문자를 구별 할 필요가 시험을 가지고, 그것은 나누기. Intersect의 두 번째 매개 변수 인 StringComparer.Ordinal, StringComparer.InvariantCulture 및 StringComparer.CurrentCulture를 보내려고했습니다 ... 행운을 빌어 요.
누구나 전에 경험할 수 있습니까?
감사합니다.
편집 :
Actual:
(0) "FOO" String
(1) "foo" String
(2) "Foo" String
(3) "fOo" String
(4) "foO" String
(5) "BAR" String
(6) "BAR" String
(7) "BAZ" String
(8) "baz" String
(9) "foo" String
Expected:
(0) "FOO" String
(1) "foo" String
(2) "Foo" String
(3) "fOo" String
(4) "foO" String
(5) "BAR" String
(6) "BAR" String
(7) "BAZ" String
(8) "baz" String
(9) "foo" String
actual.Intersect(expected, StringComparer.CurrentCulture)
(0) "FOO" String
(1) "foo" String
(2) "Foo" String
(3) "fOo" String
(4) "foO" String
(5) "BAR" String
(6) "BAZ" String
(7) "baz" String
그것은 일치하는가 'foo는'중복 제거하는 것, 그리고 일치하는 중복 'BAZ': 여기에 데이터입니다. 어쩌면 컬렉션이 일치하는지 주장하는 더 좋은 방법이 있을까요?
_EDIT2 : Intersect()는 중복을 제거하기 때문에 이것이 문제가되는 이유입니다. CollectionAssert 클래스를 찾았습니다. 이것은 내가 필요한 것입니다! 감사! _
당신이 "그것을 파괴하지"와 "운"라고, 당신은 무엇을 의미합니까 :
당신은 당신이 사용했던 수 CollectionAssert 발견되지 않았다면? "잘못 계산합니다"와 같이 "깨지다"는 뜻입니까? "똑같은 잘못된 결과가 나옵니다"와 같이 "운이 없다"는 뜻입니까? –
또한 대소 문자를 구별하지 않는 제품이 올바르게 작동하는지, 그리고 우연히 정확한 수를 제공하지 않는 것이 확실합니까? –
또한, 수행하려는 작업에 더 적합한 CollectionAssert 클래스를 살펴볼 수도 있습니다. –