如何将assertArrayEquals(,,)翻译成新的风格?

时间:2016-11-24 19:04:38

标签: java intellij-idea junit4 hamcrest

当我有:

double[] array1 = ..., array2 = ...;
assertArrayEquals(array1, array2, 1e-10);

我收到IntelliJ的警告,说明:

  

断言表达式'assertArrayEquals(array1,array2,1e-10);'可以用'assertThat'调用替换

     

[此检查]报告 Assert.assertEquals Assert.assertTrue 等方法的用法,当它可以迁移到 Assert.assertThat

我试图找到一个与assertThat一起使用的匹配器,可以处理浮点舍入错误。我在内容助理中找不到任何内容,我发现Array.isArray可以使用

assertThat(array2, is(org.hamcrest.number.IsCloseTo.closeTo(array1, 1e-10)));

但是,我收到错误,找不到包org.hamcrest.number。确实,hamcrest只有两个子包coreinternal。事实证明,IntelliJ 运送了hamcrest-core jar,而不是其他的hamcrest jar。

如果IntelliJ告诉我我的代码可以迁移到assertThat,那么不应该有可用的代码吗?这个[警告信息]是一个IntelliJ错误吗?

我的主要问题是,如何像IntelliJ那样迁移此语句?

[edit]回想起来,org.hamcrest.number.IsCloseTo甚至不处理数组,所以这更令人费解。

0 个答案:

没有答案