Assert-Sammlung enthält kein Element

75

Wenn Sie die hamcrest-Bibliothek für Java verwenden, können Sie das Gegenteil von:

assertThat(someCollection, hasItem(someItem))

Ich möchte sicherstellen, someCollectiondass kein Artikel enthalten istsomeItem

harschware
quelle

Antworten:

128

Negieren Sie die hasItemBehauptung

assertThat(someCollection, not(hasItem(someItem)))
dee-see
quelle
12
Nachdem ich das Paket IsNot ( import static org.hamcrest.core.IsNot.not) importiert hatte, funktionierte es gut.
Harschware
Das Matcherzsdefiniert alle. Factory-Methoden, damit Sie einen einzelnen *statischen Import durchführen können. Ich werde es als Arbeit nachschlagen, wenn in der nächsten Stunde niemand anderes die Leitung postet.
David Harkness
6
@harschware - Aus dem grundlegenden Tutorial , import static org.hamcrest.MatcherAssert.assertThat;undimport static org.hamcrest.Matchers.*;
David Harkness
7

Wenn Sie ein Array aktivieren müssen, verwenden Sie dieselbe Logik not(hasItemInArray())

final String[] availableIds = {"123", "321"};
final String userId = "333";

softAssert.assertThat("Id not found", availableIds, not(hasItemInArray(userId)));
softAssert.assertAll();
Alexander
quelle