我现在使用以下代码来声明boolean
值,但不推荐使用方法org.hamcrest.Matchers.is()
。
assertThat(someValue, is(false));
是否有一个简单的替代语法来测试布尔值而不求助于assertTrue()
,这会给你带来糟糕的失败消息,例如“java.lang.AssertionError”
修改
我最初的担忧是因为Eclipse将以下import语句显示为已弃用
在查看Hamcrest API文档时,is()
方法有3个重载变体,只有一个被弃用。
因此,为了澄清@mark的评论和@matt的答案,我在上面发布的is()
的使用是有效的,不会弃用。
答案 0 :(得分:44)
答案 1 :(得分:9)
我原以为这是一个传递依赖问题,但它实际上只是Eclipse中的一个显示问题,它将导入标记为已弃用,因为一个重载形式是。代码应编译正常,因为导入将公开所有表单。
已弃用的表单已从源中删除,并且在下一个版本(1.4)中不存在。
原始答案
问题在于JUnit includes a set of Hamcrest classes in its JAR。您现在可以使用junit-dep.jar
,但JUnit的较新版本(目前为4.9和4.10)将省略它们。
答案 2 :(得分:3)
据说,在文档中使用instanceOf
作为类匹配器。
http://junit.org/javadoc/latest/org/hamcrest/core/Is.html#isA(java.lang.Class)
is(IOException.class);
将是
is(instanceOf(IOException.class));
例如。