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

时间:2018-03-07 16:59:03

标签: java assertj

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

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

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

any 是关于我需要用来检查属性值是否具有任何所提供值的方法的术语或表示,{{1} }对于这种情况,可以是somepropertya,对于第二种情况也是如此,但根据b77

要评估的类型应为88String等。

如果我使用anyOf方法似乎是独特的方式是通过Integer根据:

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

1 个答案:

答案 0 :(得分:0)

尝试在3.9.0中添加的containsAnyOf,请注意提取属性会返回一个列表(由于您只提取了一个属性,因此在您的情况下为一个元素)。

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检查测试中的值是否在给定的值集中。