使用已弃用的 Hamcrest 方法的替代方法是()?

2022-08-31 17:20:11

我目前使用以下代码来断言值,但是该方法已弃用。booleanorg.hamcrest.Matchers.is()

assertThat(someValue, is(false));

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


收到评论/答案后进行编辑

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

enter image description here

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

因此,为了澄清@mark的评论和@matt的答案,我上面发布的使用是有效的,而不是弃用的。is()


答案 1

你试过吗?equalTo(T)

assertThat(someValue, equalTo(false));

我没有看到is(T)被弃用 - is(Class)是弃用的d。


答案 2

我本来以为这是一个传递依赖关系问题,但它实际上只是Eclipse中的一个显示问题,它将导入标记为已弃用,因为一个重载的形式是。代码应该可以正常编译,因为导入将公开所有窗体。

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

原始答案

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


推荐