java - 您如何断言 `Collection` 的 `Collection` 包含包含某些元素的元素?

标签 java unit-testing junit hamcrest assertj

假设我有 String s "foo" , "bar"baz

而且我得到了一个 Stream<String[]> candidates .

我现在要assertThat candidates 中的所有元素是包含 {"foo", "bar"} 的元组(以任何顺序)或 {"bar", "baz"} (以任何顺序)。

我如何最好地做到这一点?

最佳答案

您可以使用 allMatchallSatisfy 之类的东西

assertThat(candidates).allMatch(candidate -> candidate.contains...)

assertThat(candidates).allSatisfy(
          candidate -> assertThat(candidate).satisfiesAnyOf(
                       c -> {      
                          c.contains("foo");
                          c.contains("bar");
                       },
                       c -> {      
                          c.contains("bar");
                          c.contains("baz");
                       })                                     
         );

关于java - 您如何断言 `Collection` 的 `Collection` 包含包含某些元素的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57655060/

相关文章:

javascript - 如何在 React 组件中 Jest 测试 lodash.get 的使用?

java - 可以用 Kotlin 编写函数(即在顶层)。我也可以对顶层进行单元测试吗?

java - SQL 命令未正确以 select 结束

jquery - 使用 Mocha 使用 Typescript 对 Jquery 进行单元测试时如何修复 "$ is not defined"错误?

java - 我需要在java中获取这个json格式的值。我想在 spring mvc 中将此值列表传递给 jsp

c# - 除非断言失败,否则不构建上下文消息来加速单元测试

java - 如何在可完成的 future 测试异常?

eclipse - 在Eclipse中运行JUnit Test将打开控制台面板

java - Apache POI 未正确格式化单元格

Java读取输入时抛出异常