想要一个JUnitMatchers AssertThat测试字符串包含3个或更多子字符串(当前使用assertThat ...... both ......和....)

时间:2013-07-01 11:52:35

标签: java junit hamcrest

import static org.junit.matchers.JUnitMatchers.both;
import static org.junit.matchers.JUnitMatchers.containsString;

现在我检查它包含foo和bar,如下所示......

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

什么是最干净的测试方法还检查它包含3个或更多字符串,例如'foo','bar'和'baz'?

2 个答案:

答案 0 :(得分:19)

使用AllOf

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

答案 1 :(得分:2)

我不知道纯粹的JUnit中的优雅方式,但你可以看看Fixtures for Easy Software Testing

我使用它已经有一段时间了,它变得如此简单。

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