我想编写一个比较两个列表的单元测试。我试图使用hamcrest来获得良好的可读性和错误消息,但是由于某些原因,它无法编译:
List<GDSRecord> expectedRecords = getReferenceRecords(...);
List<GDSRecord> aktualRecords = gdsNetlist.getRecords();
assertThat(aktualRecords, hasItems(expectedRecords.toArray()));
这确实可以编译:
assertThat(asList("a", "b"), hasItems(new String[]{"a"}));
有人可以在这里解释区别吗?我不明白.., 谢谢!
答案 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));