Java 使用不推荐使用的Hamcrest方法is()的替代方法是什么?

Java 使用不推荐使用的Hamcrest方法is()的替代方法是什么?,java,unit-testing,hamcrest,Java,Unit Testing,Hamcrest,目前我使用以下代码对布尔值进行断言,但是方法org.hamcrest.Matchers.is()已被弃用 assertThat(someValue, is(false)); 是否有一种简单的替代语法来测试布尔值,而不必求助于assertTrue(),这会给您提供诸如“java.lang.AssertionError”之类的错误消息 收到评论/答案后编辑 我最初的担忧是因为Eclipse显示以下import语句已弃用 查看文档时,is()方法有3个重载变体,其中只有一个已弃用 assertT

目前我使用以下代码对
布尔值进行断言,但是方法
org.hamcrest.Matchers.is()
已被弃用

assertThat(someValue, is(false));
是否有一种简单的替代语法来测试布尔值,而不必求助于
assertTrue()
,这会给您提供诸如“java.lang.AssertionError”之类的错误消息


收到评论/答案后编辑

我最初的担忧是因为Eclipse显示以下import语句已弃用

查看文档时,
is()
方法有3个重载变体,其中只有一个已弃用

assertThat(someValue, is(false));

因此,为了澄清@mark的评论和@matt的答案,我在上面发布的
is()
的使用是有效的,没有被反对。

您是否尝试过
equalTo(T)

assertThat(someValue, is(false));

但是,我不认为这是不推荐使用的-d。

我原以为这是一个可传递的依赖关系问题,但实际上这只是Eclipse中的一个显示问题,它将导入标记为不推荐使用,因为一个重载的表单是。由于导入将公开所有表单,因此代码应该可以正常编译

不推荐使用的表单已从源中删除,在下一版本(1.4)中不存在

原始答案


问题是。您现在可以使用junit-dep.jar
,但junit的较新版本(到目前为止为4.9和4.10)省略了它们。

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

将是

is(instanceOf(IOException.class));

例如。

它没有被弃用,对于布尔人,我总是更喜欢
is()
而不是
equalTo()
。但是它们是彼此的别名。为了简洁和避免警告,您可以包含
*
而不是命名每个匹配器。@David…直到您使用“组织导入”@Brad设置所需的静态导入数。*到
1
。Eclipse中没有错误。请参阅我对以下公认答案的评论。有许多名为
is()
的重载方法,其中只有一些方法是不推荐的,谢谢澄清。你说得对
is(T)
没有被弃用。我看到它的重载同级
is(Class)
已被弃用,这让我相信
is()
的所有用法都已弃用。这是一个问题,但它与这个问题有什么关系?我使用junit-4.11,我仍然得到这个。hamcrest-1.3中提到的所有三种方法都存在。eclipse找到它们的顺序中的第一个是弃用的一个,而AFAICT是eclipse标记为弃用的一个。有趣的是,它被放在源文件中其他文件的下面。@aron我已经更新了我的答案,现在我发现这只是一个Eclipse显示问题。