hasItems
checks:
passaggi consecutivi sul rendimento Iterable esaminato almeno un elemento che è uguale alla corrispondente del specificato items
.
Cioè, si fa in modo che le collezioni contiene almeno questi elementi, in qualsiasi ordine. Quindi,
assertThat(c, hasItems("one", "two"));
passerebbe anche, con l'elemento in più che viene ignorato. E:
assertThat(c, hasItems("three", "two", "one"));
passare anche.
contains
checks:
un unico passaggio sulla esaminato Iterable
produce una serie di elementi, ognuno logicamente pari alla corrispondente voce gli elementi specificati. Per una corrispondenza positiva, l'iterabile esaminato deve essere della stessa lunghezza del numero di elementi specificati.
Così fa in modo che la raccolta contiene esattamente questi elementi:
assertThat(c, contains("one", "two")); // Fails
Ciò fallire, come il residuo "three"
non corrisponde.
assertThat(c, contains("three", "two", "one")); // Fails
Ciò non riesce perché gli elementi corrispondenti non corrispondono.
Un'altra matcher correlato, containsInAnyOrder
, checks che esattamente tali elementi sono presenti, ma in qualsiasi ordine:
crea un matcher agnostico affinché Iterables
che corrisponde quando un singolo passaggio sulla esaminato Iterable
produce una serie di articoli, ciascuno logicamente uguale a un elemento in qualsiasi punto degli articoli specificati.
Un test con un elemento mancante fallisce:
assertThat(c, containsInAnyOrder("one", "two")); // Fails
Ma tutti gli elementi in un ordine diverso passerà:
assertThat(c, containsInAnyOrder("three", "two", "one"));