相关疑难解决方法(0)

一个单元应该如何测试hashCode-equals合约?

简而言之,hashCode契约,根据Java的object.hashCode():

  1. 除非影响equals()的内容发生变化,否则哈希码不应更改
  2. equals()表示哈希码是==

让我们主要关注不可变数据对象 - 它们的信息在构造之后永远不会改变,因此假定#1成立.留下#2:问题只是确认等于隐含代码==.

显然,我们无法测试每个可想到的数据对象,除非该集合很小.那么,编写可能会遇到常见情况的单元测试的最佳方法是什么?

由于此类的实例是不可变的,因此构造此类对象的方法有限; 如果可能的话,这个单元测试应该涵盖所有这些.在我的脑海中,入口点是构造函数,反序列化和子类的构造函数(应该可以简化为构造函数调用问题).

[我打算通过研究来回答我自己的问题.来自其他StackOverflowers的输入是这个过程的一个受欢迎的安全机制.]

[这可能适用于其他OO语言,所以我添加了该标签.]

java oop unit-testing

72
推荐指数
3
解决办法
4万
查看次数

标签 统计

java ×1

oop ×1

unit-testing ×1