无法导入assertThat方法junit

时间:2018-07-10 07:38:13

标签: java unit-testing hamcrest junit5

我正在使用hamcrest和junit进行测试,我需要比较2个具有相同项目但顺序不同的地图,因此assertEquals对我不起作用。 我已经看到了答案,但是我无法导入所需的方法。

我通过以下方式导入

import static org.hamcrest.collection.IsIterableContainingInAnyOrder.containsInAnyOrder;
import static org.junit.Assert.assertThat;

然后我尝试在答案中看到的第二件事

assertThat(expectedMap, containsInAnyOrder(receivedMap));

但无法识别方法assert那,IDE会向我显示一条警告,要求我创建方法

IntelliJ error tooltip: "assertThat(java.util.Map,org.hamcrest.Matcher>>)"

2 个答案:

答案 0 :(得分:1)

Map未实现Iterable。因此,方法签名与推断的参数类型Map<?>Matcher<Iterable<?>>不匹配。

答案 1 :(得分:0)

您导入了错误的assertThat方法,您想要的是hamcrest中的方法:

import static org.hamcrest.MatcherAssert.assertThat;