首页 > 解决方案 > 将列表与 hamcrest 进行比较

问题描述

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

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

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

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

另一方面,这确实编译:

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

有人可以解释这里的区别吗?没看懂。。谢谢!

标签: javaarraylisthamcrest

解决方案


机会是,那

expectedRecords.toArray()

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

expectedRecords.toArray(new GDSRecord[0])

它应该可以工作。


推荐阅读