java - 与 hamcrest 比较列表

标签 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"}));

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

最佳答案

有可能,

expectedRecords.toArray()

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

expectedRecords.toArray(new GDSRecord[0])

它应该可以工作。

关于java - 与 hamcrest 比较列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53665661/

相关文章:

java - 如何使用 AssertThat 检查列表中对象的属性值?

java - 删除/释放 Java 中的链表节点。请提出建议

java - 如何添加一个显示特定文件详细信息的对话框?

java - 如何在 Spring 中处理多个文件和消息以实现国际化?

android - 从android中的webservice检索字符串列表

java - 数组列表的成本

java - 如何将 ArrayList 内的对象实例与通过 Scanner 的用户输入进行比较

java - Shazamcrest 定制搭配系列

java - 类名必须在方法之前,必须是 MatcherAssert.assertThat() 而不仅仅是 assertThat()?

Java:数据结构的内置实现是否效率低下?