Perché questo non compila, oh, cosa fare?Perché questo codice che tenta di utilizzare hasItem di Hamcrest non viene compilato?
import static org.junit.Assert.assertThat;
import static org.junit.matchers.JUnitMatchers.hasItems;
ArrayList<Integer> actual = new ArrayList<Integer>();
ArrayList<Integer> expected = new ArrayList<Integer>();
actual.add(1);
expected.add(2);
assertThat(actual, hasItems(expected));
errore copiato da un commento:
cannot find symbol method assertThat(java.util.ArrayList<java.lang.Integer>, org.hamcreset.Matcher<java.lang.Iterable<java.util.ArrayList<java.lang.Integer>>>)
sto paragonando più elementi. (hasItems, non hasItem) – ripper234
Quindi, hamcrest semplicemente non supporta il confronto di due raccolte? (Non ho un elenco effettivo di elementi, sto costruendo l'elenco di numeri da 0 a 999 Devo confrontare le collezioni). – ripper234
Non posso rispondere per questo, lo dico sulla base della documentazione. Ma c'è un modo più semplice per fare ciò che vuoi ... usa assertTrue (actual.containsAll (expected)). – freitass