그건 내가 믿는 정말로 간단한 질문이어야합니다. 하지만 어떻게 든 Google에서 답변을 찾을 수 없습니다.AssertEquals 2 목록 무시 명령
2 개의 문자열 목록이 있다고 가정합니다. 첫 번째 문자는 "문자열 A"와 "문자열 B"이고 두 번째 문자는 "문자열 B"와 "문자열 A" (순서가 다름)입니다. JUnit으로 테스트하여 정확히 문자열 인 이 들어 있는지 확인하십시오.
순서를 무시하는 문자열의 동일성을 검사하는 어설 션이 있습니까? 주어진 예를 들어 org.junit.Assert.assertEquals를 들어 먼저 목록을 정렬하고 다음 주장에게 전달하는 것입니다 주위
java.lang.AssertionError: expected:<[String A, String B]> but was:<[String B, String A]>
일 AssertionError를 발생합니다. 그러나 나는 가능한 한 간단하고 깨끗한 코드를 원한다.
나는 Hamcrest 1.3, 의 JUnit 4.11, Mockito 1.9.5를 사용합니다.
는'list1.removeAll (리스트 2)가'빈 list1''떠나야한다. 나는 당신이 원하는 것을 얻기 위해 이것을 기반으로 할 수 있다고 생각합니다. – SudoRahul
'containsAll'과'removeAll'은리스트를 정렬하는 동안'O (n²)'이고 동등성을 테스트하는 것은'O (nlogn)'입니다. 'Collections.sort (list1); Collections.sort (list2); assertTrue (list1.equals (list2));'도 깨끗합니다. –
가능한 복제본 [Hamcrest 비교 모음] (http : // stackoverflow.com/questions/21624592/hamcrest-compare-collections) – Joe