java - 将列表与 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])
它应该可以工作。
推荐阅读
- javascript - 如何从jmeter中的javascript中提取id?
- flutter - 为什么在我的 Cubit LoadedState 中的 dart 中代码不执行并被跳过?
- python - 我该如何解决我的代码中的这个错误?TypeError:“函数”类型的参数不可迭代
- php - 收到 PHP 已弃用错误:ReflectionParameter::getClass()
- windows-10 - 如何降低 SSD 磁盘的速度
- javascript - 任务从 MongoDb、Mongoose 中删除数组中的所有蓬松对象
- c# - 您可以将泛型传递给 .NET Core 硬件内在方法吗?
- hapi-fhir - Fhir R4 - 跟踪资源创建用户
- java - java 三元运算符可以替换为 Math.max 调用
- arrays - 如何重现合并不同维度的多个图像