Uważam, że to powinno być naprawdę proste pytanie. Ale jakoś nie mogę znaleźć odpowiedzi w Google.
Załóżmy, że mam 2 listy ciągów. Pierwsza zawiera „Ciąg A” i „Ciąg B” , a druga zawiera „Ciąg B” i „Ciąg A” (zauważ różnicę w kolejności). Chcę je przetestować za pomocą JUnit, aby sprawdzić, czy zawierają dokładnie te same ciągi.
Czy istnieje potwierdzenie, które sprawdza równość ciągów znaków, które ignorują kolejność? Na przykład org.junit.Assert.assertEquals zgłasza AssertionError
java.lang.AssertionError: expected:<[String A, String B]> but was:<[String B, String A]>
Rozwiązaniem jest najpierw posortowanie list, a następnie przekazanie ich do asercji. Ale chcę, aby mój kod był tak prosty i czysty, jak to tylko możliwe.
Używam Hamcrest 1.3 , JUnit 4.11 , Mockito 1.9.5 .
list1.removeAll(list2)
powinien pozostaćlist1
pusty. Myślę, że możesz zbudować na tym, aby uzyskać to, czego chcesz.