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

k1e*_*ran 10 java junit hamcrest

import static org.junit.matchers.JUnitMatchers.both;
import static org.junit.matchers.JUnitMatchers.containsString;
Run Code Online (Sandbox Code Playgroud)

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

        Assert.assertThat(text,
            both(containsString("foo")).
            and(containsString("bar")));
Run Code Online (Sandbox Code Playgroud)

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

Joh*_*n B 20

使用AllOf

 Assert.assertThat(test, CoreMatchers.allOf(
      containsString("foo"),
      containsString("bar"),
      containsString("bar2"),
      containsString("ba3")));
Run Code Online (Sandbox Code Playgroud)