如何编写复合Hamcrest语句(使用逻辑"或"操作)

时间:2014-05-30 20:44:02

标签: java junit hamcrest

我如何使用Hamcrest编写以下JUnit断言?

assertTrue(var1 == 5 || var2 == 10);

我无法使用anyOf()匹配器包装器,因为我不需要多个匹配器,我需要多个语句,每个变量一个var1var2

1 个答案:

答案 0 :(得分:6)

您可以将变量转换为单个复合对象,将其写为单个Hamcrest断言:

assertThat(ImmutableList.of(var1, var2),
    either(contains(is(5), anything()))
    .or(contains(anything(), is(10))));

我建议这不是特别容易理解,也不能帮助解释这意味着什么以及为什么这代表成功。