只是好奇是否可以通过AssertJ
做这样的事情:
assertThat(somePojo).isNotNull()
.extracting("someproperty")
.doesNotContainNull()
.contains(any("a", "b"))
assertThat(somePojo).isNotNull()
.extracting("othersomeproperty")
.doesNotContainNull()
.contains(any(77, 88))
any 是关于我需要用来检查属性值是否具有所提供的值的任何 的方法的术语或表示,即 someproperty
对于这种情况,可以是 a
或b
,对第二种情况有同样的想法,但符合 77
或88
要评估的类型应该是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/