java - AssertJ:如何在没有条件的情况下对任何可能的值进行比较

标签 java assertj

只是好奇是否可以通过AssertJ做这样的事情:

assertThat(somePojo).isNotNull()
                    .extracting("someproperty")
                    .doesNotContainNull()
                    .contains(any("a", "b"))

assertThat(somePojo).isNotNull()
                    .extracting("othersomeproperty")
                    .doesNotContainNull()
                    .contains(any(77, 88))

any 是关于我需要用来检查属性值是否具有所提供的值的任何 的方法的术语或表示,即 someproperty对于这种情况,可以是 ab ,对第二种情况有同样的想法,但符合 7788

要评估的类型应该是any,String , Integer等等..

如果我使用 anyOf 方法似乎唯一的方法是通过 Condition<T>根据:

不确定(我做了一项研究,但没有结果)是否可以使用其他方法并得到相同的anyOf行为但没有 Condition<T>

最佳答案

尝试containsAnyOf这是在 3.9.0 中添加的,请注意,提取属性会返回一个列表(您的案例中的一个元素,因为您只提取一个属性)。

Iterable<String> abc = Arrays.asList("a", "b", "c");

// assertions will pass
assertThat(abc).containsAnyOf("b")
               .containsAnyOf("b", "c")
               .containsAnyOf("a", "b", "c")
               .containsAnyOf("a", "b", "c", "d")
               .containsAnyOf("e", "f", "g", "b");

或者,使用 isIn检查被测值是否在给定的一组值中。

关于java - AssertJ:如何在没有条件的情况下对任何可能的值进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49157413/

相关文章:

java - 如何将从服务器收到的结果存储到文本文件中

java - AssertJ:为 Set<A extends B> 生成流畅的断言

java - AssertJ-Swing 和 Junit 5 支持

java - 并行流中的异常详细信息不一致

java - 可选是否级联?

java - 如何使 EJB 内的阻塞调用超时?

java - 针对大型 Web 项目从 ASP.NET 切换到 Java EE

java - 一个模拟类工作正常,另一个返回 null

java - 当抛出 'Exception B'时如何断言 "Exception A: Exception B"?

java - 对集合的复杂断言