简而言之,hashCode契约,根据Java的object.hashCode():
让我们主要关注不可变数据对象 - 它们的信息在构造之后永远不会改变,因此假定#1成立.留下#2:问题只是确认等于隐含代码==.
显然,我们无法测试每个可想到的数据对象,除非该集合很小.那么,编写可能会遇到常见情况的单元测试的最佳方法是什么?
由于此类的实例是不可变的,因此构造此类对象的方法有限; 如果可能的话,这个单元测试应该涵盖所有这些.在我的脑海中,入口点是构造函数,反序列化和子类的构造函数(应该可以简化为构造函数调用问题).
[我打算通过研究来回答我自己的问题.来自其他StackOverflowers的输入是这个过程的一个受欢迎的安全机制.]
[这可能适用于其他OO语言,所以我添加了该标签.]