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

Antworten:


128

Negieren Sie die hasItemBehauptung

assertThat(someCollection, not(hasItem(someItem)))

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();
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.