JPA实体:单元测试equals()方法

时间:2016-01-14 07:09:29

标签: unit-testing jpa

对于我们的JPA实体,我们重写了equals和hashCode方法。我认为这些定义是由Netbeans生成的(我通常不会在我的实体中包含equals或hashCode,但我们的其他开发人员会这样做)

我的申请中没有遇到过这样的问题,因为我不知道是否应该删除它们。

如果这是一个非常糟糕的主意,那么我需要多长时间才能测试equals()方法?我是否需要为equals()合同中的每个条件编写测试?例如,针对以下各项的测试:

Reflexive: for any reference value x, x.equals(x) should return true.
Symmetric: for any reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
Transitive: for any reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.
Consistent: for any reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the object is modified.
For any non-null reference value x, x.equals(null) should return false. 

0 个答案:

没有答案