JUnit4:is()vs is(notNullValue())

时间:2013-03-22 12:37:27

标签: java junit4 assertions

关于JUnit4 assertThat,我已经看到过两种方式。一个是正​​确的还是一样的呢?

byte[] val;
...
assertThat(val, notNullValue());
        --vs--
assertThat(val, is(notNullValue()));

第二个选项显示“断言val不为空”,这听起来更好。 (另一方面,它可能是多余的。)

我已经两种方式使用它们似乎产生了正确的结果。

2 个答案:

答案 0 :(得分:7)

Hamcrest documentation说:

  

Hamcrest努力使您的测试尽可能可读。例如, is匹配器是一个包装器,它不会向底层匹配器添加任何额外的行为。以下断言都是等效的

assertThat(theBiscuit, equalTo(myBiscuit));
assertThat(theBiscuit, is(equalTo(myBiscuit)));
assertThat(theBiscuit, is(myBiscuit));
     

允许使用最后一种表单,因为is(T value)已重载以返回is(equalTo(value))

答案 1 :(得分:2)

这两种方式没有区别。 is()方法主要用于提高可读性。