Java JUnit4:is()vs is(notNullValue())
关于JUnit4Java 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()方法的引入主要是为了提高可读性。说明
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文档。