()是什么使用过去的Hamcrest方法的替代?

我现在使用下面的代码来断言一个boolean值,但是org.hamcrest.Matchers.is()方法已经被弃用了。

 assertThat(someValue, is(false)); 

有没有一个简单的替代语法来testing布尔值,而不是诉诸assertTrue() ,它给你糟糕的失败消息,如“java.lang.AssertionError”


收到评论/回答后编辑

我最初的担心是因为Eclipse显示了以下的导入语句而被弃用

在这里输入图像说明

在查看Hamcrest API文档时,有3个重载的is()方法变体,其中只有一个被弃用。

因此,要澄清来自@mark的评论和来自@matt的回答,我上面发布的is()的使用是有效的,并且不推荐使用。

你试过equalTo(T)

 assertThat(someValue, equalTo(false)); 

我不明白那is(T)被弃用 – 是(类)被弃用 d然而。

我曾经以为这是一个传递依赖问题,但它实际上只是Eclipse中的一个显示问题,它将导入标记为已弃用,因为一个重载表单是。 该代码应该编译好,因为导入将公开所有表单。

已弃用的表单已从源中删除,并且在下一个版本(1.4)中不存在。

原始答复

问题是JUnit在JAR中包含一组Hamcrest类 。 现在可以使用junit-dep.jar ,但是JUnit的新版本(目前为4.9和4.10)忽略了它们。

据说,在文档中使用instanceOf作为类匹配器。

http://junit.org/javadoc/latest/org/hamcrest/core/Is.html#isA(java.lang.Class);

 is(IOException.class); 

将会

 is(instanceOf(IOException.class)); 

例如。