제 테스트 중 하나에서 컬렉션에 특정 항목이 있는지 확인하고자합니다. 따라서이 컬렉션을 예상 컬렉션 의 항목과 비교하려면 항목과 관련이 없습니다. 현재, 내 테스트 코드는 다음과 같이 보입니다.xunit.net에서 항목의 순서에 관계없이 두 개의 모음을 비교하는 쉬운 방법이 있습니까?
[Fact]
public void SomeTest()
{
// Do something in Arrange and Act phase to obtain a collection
List<int> actual = ...
// Now the important stuff in the Assert phase
var expected = new List<int> { 42, 87, 30 };
Assert.Equal(expected.Count, actual.Count);
foreach (var item in actual)
Assert.True(expected.Contains(item));
}
xunit.net에서 쉽게 구현할 수있는 방법이 있습니까? 이 방법은 두 컬렉션에서 항목의 순서가 동일한 지 확인하기 위해 Assert.Equal
을 사용할 수 없습니다. Assert.Collection
을 살펴 보았지만 위 코드에서 Assert.Equal(expected.Count, actual.Count)
문을 제거하지 않았습니다.
미리 답변 해 주셔서 감사합니다.
에서
CollectionAssert.AreEquivalent
를 사용할 수 있습니까? – aquinas목록 1이 {1, 3, 5}이고 목록 2가 {1, 3, 3, 3, 5}이면 Raph의 대답은 실패합니다. 이제는 목록 1이 {1, 1, 3, 5, 5}이고 목록 2가 {1, 3, 3, 5, 5}이면 실패 할 것이기 때문에 크기를 검사하는 것으로 충분하지 않을 수도 있습니다.그래도 Raph에 +1하면 아주 우아한 출발점이됩니다. –
Except는 두 목록 간의 차이점을 산출합니다. 하나의 목록에 더 많은 항목이 있으면이 항목이 산출됩니다. 크기를 확인할 필요가 없습니다. – rducom