关于JUnit4 assertThat
,我已经看到过两种方式。一个是正确的还是一样的呢?
byte[] val;
...
assertThat(val, notNullValue());
--vs--
assertThat(val, is(notNullValue()));
第二个选项显示“断言val不为空”,这听起来更好。 (另一方面,它可能是多余的。)
我已经两种方式使用它们似乎产生了正确的结果。
答案 0 :(得分:7)
Hamcrest努力使您的测试尽可能可读。例如,
is
匹配器是一个包装器,它不会向底层匹配器添加任何额外的行为。以下断言都是等效的:assertThat(theBiscuit, equalTo(myBiscuit)); assertThat(theBiscuit, is(equalTo(myBiscuit))); assertThat(theBiscuit, is(myBiscuit));
允许使用最后一种表单,因为
is(T value)
已重载以返回is(equalTo(value))
。
答案 1 :(得分:2)
这两种方式没有区别。 is()
方法主要用于提高可读性。