方法org.hamcrest.CoreMatchers.is()
已弃用。
doc表示要使用 - org.hamcrest.CoreMatchers.isA()
代替。
但isA()
似乎在一起提供不同的案例。
确定。什么,遇到我的问题。之前我使用is()
如下
// might be i should not be using it like this, but it works.
assertThat(actualRes, is(true));
现在我不能对isA()
使用相同的内容。它会抛出编译错误
不适用于参数(布尔值)
我理解isA()
的作用。我想知道的是,在is()
被弃用的情况下,我应该使用什么来替代assertThat(actualRes, is(true))
?
答案 0 :(得分:4)
CoreMatchers.is()
的弃用形式为this one:
是(java.lang.Class类型)
已过时。改为使用isA(类型)。
因此,对于此isA
是正确的选择,但您在此断言中使用CoreMatchers.is()
的形式:assertThat(actualRes, is(true));
是this one ...
是(T值)
常用的快捷方式是(equalTo(x))。
... 不已弃用。
这里有一些可能澄清问题的代码:
boolean actualRes = true;
// this passes because the *value of* actualRes is true
assertThat(actualRes, CoreMatchers.is(true));
// this matcher is deprecated but the assertion still passes because the *type of* actualRes is a Boolean
assertThat(actualRes, CoreMatchers.is(Boolean.class));
// this passes because the *type of* actualRes is a Boolean
assertThat(actualRes, CoreMatchers.isA(Boolean.class));