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

Nach wie unten ... Ich überprüfe es enthält foo und barMöchten Sie eine JUnitMatchers AssertThat Zeichenfolge enthält 3 oder mehr Sub-Strings testen (derzeit assertThat ... beide ... und .... mit)

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

Was ist der sauberste Weg zu testen, überprüfen Sie auch, ob es 3 oder mehr Zeichenfolgen enthält z 'foo', 'bar' und 'baz'?

Antwort

16

Verwenden AllOf

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

Ich weiß nicht, eine elegante Art und Weise in reiner JUnit, aber man kann einen Blick auf Fixtures for Easy Software Testing

nimmt ich es schon seit geraumer Zeit bin mit und macht es wie so viel einfacher.

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

+1 FEST/[AssertJ] (http://joel-costigliola.github.io/assertj/). Sie könnten 'assertThat (text) .contains (" foo "," bar "," baz ");' - es ist noch prägnanter. – Jonathan

Verwandte Themen