Bra*_*rad 51 java unit-testing hamcrest
我现在使用以下代码来断言一个boolean值,但是该方法org.hamcrest.Matchers.is()已被弃用.
assertThat(someValue, is(false));
Run Code Online (Sandbox Code Playgroud)
是否有一个简单的替代语法来测试布尔值而不求助于assertTrue()给出不良的失败消息,如"java.lang.AssertionError"
收到评论/答案后编辑
我最初的担忧是因为Eclipse将以下import语句显示为已弃用

在查看Hamcrest API文档时,该is()方法有3个重载变体,其中只有一个被弃用.
因此,为了澄清来自@mark的评论和来自@matt的答案is(),我在上面发布的使用是有效的而不是弃用的.
mat*_*t b 46
你试过equalTo(T)吗?
assertThat(someValue, equalTo(false));
Run Code Online (Sandbox Code Playgroud)
我没有看到它is(T)被弃用 - 但是(Class)是弃用的.
我原以为这是一个传递依赖问题,但它实际上只是Eclipse中的一个显示问题,它将导入标记为已弃用,因为一个重载形式是.代码应该编译好,因为导入将公开所有表单.
已弃用的表单已从源中删除,并且不会在下一个版本中存在(1.4).
原始答案
问题是JUnit在其JAR中包含一组Hamcrest类.您junit-dep.jar现在可以使用,但JUnit的较新版本(目前为4.9和4.10)省略了它们.
这已被弃用:
import static org.junit.Assert.assertThat;
Run Code Online (Sandbox Code Playgroud)
我们可以用这个来代替:
import static org.hamcrest.MatcherAssert.assertThat;
Run Code Online (Sandbox Code Playgroud)