2012-02-20 5 views
39

Korzystanie z biblioteki hamcrest dla Javy, co ładnie czytelny sposób zrobić przeciwieństwo:assert nie zawiera elementu

assertThat(someCollection, hasItem(someItem)) 

chcę się upewnić someCollection nie zawiera artykuł someItem

Odpowiedz

70

negować hasItem twierdzenie

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

Po zaimportowaniu pakietu IsNot ('import static org.hamcrest.core.IsNot.not') działało dobrze. – harschware

+0

'Matcherzs' definiuje wszystkie. metody fabryczne, dzięki czemu możesz mieć pojedynczy import statyczny '*'. Sprawdzę to, jeśli nikt inny nie opublikuje linii w ciągu następnej godziny. –

+5

@harschware - z [podstawowy samouczek] (http://code.google.com/p/hamcrest/wiki/Tutorial), 'import statyczny org.hamcrest.MatcherAssert.assertThat;' i 'import statyczny org.hamcrest. Matchers. *; ' –

1

Jeśli trzeba dochodzić tablicą, samo użycie logika 'nie (hasItemInArray())'

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

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