()是什么使用过去的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));
例如。