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

現在我檢查它包含foo和下面吧......想要一個JUnitMatchers AssertThat測試字符串包含3個或更多的子串(目前使用assertThat ... ...都...和)

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

什麼是最乾淨的方式來測試也檢查它包含3個或更多的字符串例如'foo','bar'和'baz'?

回答

16

使用AllOf

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

我不知道在純JUnit的一個優雅的方式,但你可以在Fixtures for Easy Software Testing

看看我使用它相當長的一段時間,這讓像這樣更容易。

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

+1 FEST/[AssertJ](http://joel-costigliola.github.io/assertj/)。你可以使用'assertThat(text).contains(「foo」,「bar」,「baz」);' - 它更簡潔。 – Jonathan

相關問題