int i = 2;
assertThat(i, Matchers.either(Matchers.is(3)).or(Matchers.is(5))
or
int i = 2;
assertThat(i, Matchers.anyOf(Matchers.is(3),Matchers.is(5)));
public class Foo {
public static final List<Integer> VALID_VALUES = Arrays.asList(3, 5);
}
@Test
public void testName() {
int i = 5;
Assert.assertTrue(Foo.VALID_VALUES.contains(i));
}
5条答案
按热度按时间kx7yvsdv1#
您可以使用Hamcrest matchers在此处获得更清晰的错误消息:
这将更清楚地解释:
准确地显示了期望值和所提供的不正确值。
nfg76nw02#
我试过写快速测试:
它总是传递,所以我猜当你的值改变时,代码之间会有一些中间代码。
检查值-此Assert将打印出详细的错误信息,例如:
qoefvg9y3#
虽然Harmcrest匹配器可以完成这项工作,但这些常量可以很容易地重构为更有意义的常量,比如有效值列表,然后可以使用
contains
方法检查列表中是否存在该值-- IMO也更容易阅读:ttvkxqim4#
在我的例子中,我想做一些复杂的Assert逻辑,所以我简单地实现了一个返回布尔值的方法,它完成了这项工作,在这个例子中它的实现方式如下:
然后进行Assert:
当然,如果需要,该方法可以包含更复杂的逻辑
eni9jsuy5#
使用TestNG,这也是可能的