【发布时间】:2015-09-21 15:00:53
【问题描述】:
我们有一个包含多个字段的自定义类,出于业务领域的原因,我们无法覆盖equals/hashcode方法
尽管如此,在单元测试期间,我们应该断言集合是否包含此类的项
List<CustomClass> customObjectList = classUnderTest.methodUnderTest();
//create customObject with fields set to the very same values as one of the elements in customObjectList
//we should assert here that customObjectList contains customObject
但是,到目前为止,我们还没有找到任何不覆盖 equals/hashcode 的解决方案,例如汉克雷斯特
assertThat(customObjectList, contains(customObject));
导致 AssertionError 引用
Expected: iterable containing [<CustomClass@578486a3>]
but: item 0: was <CustomClass@551aa95a>
是否有无需逐个字段比较的解决方案?
【问题讨论】:
标签: java collections junit equals hamcrest