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

sam*_*ers 4 java junit hamcrest junit4

该方法org.hamcrest.CoreMatchers.is()已弃用。
文档说,使用-org.hamcrest.CoreMatchers.isA()代替。

isA()似乎一起服务于不同的情况。

好的。什么,来到我的问题。早些时候我使用is()如下

// might be i should not be using it like this, but it works.
assertThat(actualRes, is(true));
Run Code Online (Sandbox Code Playgroud)

现在我不能使用相同的isA(). 它引发编译错误不适用于参数(布尔值)

我明白是isA()做什么的。我想知道的是,鉴于is() 已弃用,我应该使用什么来替代assertThat(actualRes, is(true))

gly*_*ing 5

的弃用形式CoreMatchers.is()这样的

is(java.lang.Class 类型)

已弃用。使用 isA(Class type) 代替。

因此,对于这isA是正确的选择,但形式CoreMatchers.is(),其使用的是这句话:assertThat(actualRes, is(true));就是这一个...

是(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));
Run Code Online (Sandbox Code Playgroud)