2013-07-01 5 views
8
import static org.junit.matchers.JUnitMatchers.both; 
import static org.junit.matchers.JUnitMatchers.containsString; 

Ora controllare che contiene foo e bar, qui di seguito ...Vuoi un JUnitMatchers AssertThat per testare stringa contiene 3 o più stringhe sub (attualmente in uso assertThat ... sia ... e ....)

 Assert.assertThat(text, 
      both(containsString("foo")). 
      and(containsString("bar"))); 

Qual è il modo più pulito per verificare anche se contiene 3 o più stringhe, ad es. 'foo', 'bar' e 'baz'?

risposta

16

Usa AllOf

Assert.assertThat(test, CoreMatchers.allOf(
     containsString("foo"), 
     containsString("bar"), 
     containsString("bar2"), 
     containsString("ba3"))); 
2

non so un modo elegante in puro JUnit ma si potrebbe dare un'occhiata a Fixtures for Easy Software Testing

lo sto usando per un bel po 'di tempo e mi fa in questo modo molto più facile.

assertThat(text).contains("foo").contains("bar"); 
+0

+1 FEST/[AssertJ] (http://joel-costigliola.github.io/assertj/). Potresti usare 'assertThat (text) .contains (" foo "," bar "," baz ");' - è ancora più succinto. – Jonathan

Problemi correlati