JUnit / Hamcrest - org.hamcrest.CoreMatchers.is()已弃用。我应该用什么呢?

时间:2017-09-24 14:51:45

标签: java junit junit4 hamcrest

方法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))

1 个答案:

答案 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));