Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JUnit4:is()vs is(notNullValue())_Java_Junit4_Assertions - Fatal编程技术网

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

Java JUnit4:is()vs is(notNullValue()),java,junit4,assertions,Java,Junit4,Assertions,关于JUnit4assertThat,我已经看到了这两种方法。是一个对另一个正确,还是完全一样 byte[] val; ... assertThat(val, notNullValue()); --vs-- assertThat(val, is(notNullValue())); 第二个选项是“断言val不为null”,这听起来更好。(另一方面,它可能是多余的。) 我使用了这两种方法,它们似乎产生了正确的结果。这两种方法之间没有区别。is()方法的引入主要是为了提高可读性。说明

关于JUnit4
assertThat
,我已经看到了这两种方法。是一个对另一个正确,还是完全一样

byte[] val;
...
assertThat(val, notNullValue());
        --vs--
assertThat(val, is(notNullValue()));
第二个选项是“断言val不为null”,这听起来更好。(另一方面,它可能是多余的。)


我使用了这两种方法,它们似乎产生了正确的结果。

这两种方法之间没有区别。
is()
方法的引入主要是为了提高可读性。

说明:

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

assertThat(theBiscuit, equalTo(myBiscuit));
assertThat(theBiscuit, is(equalTo(myBiscuit)));
assertThat(theBiscuit, is(myBiscuit));
最后一个表单是允许的,因为
is(T值)
被重载以返回
is(equalTo(value))


如果目的是断言一个值不为null,我只需使用
assert.assertNotNull(val)
@MagnusTengdahl:我使用assertThat而不是assertNotNull,因为打印的消息提供了更多信息(例如:“预期X,但X为null”)。我理解。
assertNull(java.lang.String、java.lang.Object)
then如何?:)它接受了一条消息。@MagnusTengdahl:谢谢你的提示,但我还是要写消息。使用
assertThat
我不需要额外的工作就能获得很好的输出。我需要编写的代码越少越好!谢谢你指出这个链接。我阅读了JUnitWiki,但没有阅读Hamcret文档。