2012-02-20 2 views
39

Utilizzando la libreria hamcrest per Java, che cosa è un modo ben leggibile a fare il contrario di:assert non contiene elemento

assertThat(someCollection, hasItem(someItem)) 

voglio fare in modo someCollection non contiene elemento someItem

risposta

70

Negate l'asserzione hasItem

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

Una volta importato il pacchetto IsNot ('import static org.hamcrest.core.IsNot.not') ha funzionato bene. – harschware

+0

Il 'Matcherzs' definisce tutto il. metodi di fabbrica in modo da poter avere una singola importazione statica '*' Cercherò un'opera se nessun altro posterà la linea nell'ora successiva. –

+5

@harschware: dal [tutorial di base] (http://code.google.com/p/hamcrest/wiki/Tutorial), 'import static org.hamcrest.MatcherAssert.assertThat;' e 'importa static org.hamcrest. matchers. *; ' –

1

Se avete bisogno di affermare un Array, lo stesso uso logica 'non (hasItemInArray())'

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

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