将列表与hamcrest进行比较

时间:2018-12-07 08:18:46

标签: java arraylist hamcrest

我想编写一个比较两个列表的单元测试。我试图使用hamcrest来获得良好的可读性和错误消息,但是由于某些原因,它无法编译:

List<GDSRecord> expectedRecords = getReferenceRecords(...);

List<GDSRecord> aktualRecords = gdsNetlist.getRecords();

assertThat(aktualRecords, hasItems(expectedRecords.toArray()));

这确实可以编译:

assertThat(asList("a", "b"), hasItems(new String[]{"a"}));

有人可以在这里解释区别吗?我不明白.., 谢谢!

2 个答案:

答案 0 :(得分:2)

有机会

expectedRecords.toArray()

将其转换为Object[],您可以将其更改为使用List.toArray​(T[] a)

expectedRecords.toArray(new GDSRecord[0])

它应该可以工作。

答案 1 :(得分:0)

Hamecrast对于这样简单的任务来说太复杂了。 清洁程序是使用标准的junit断言。

assertTrue("AktualRecords should contains expectedRecords",aktualRecords.containsAll(expectedRecords));