使用Mockito测试Model类equals()方法

时间:2015-09-10 21:40:07

标签: java mockito

如何测试Model类'equals()方法。我一直遇到以下问题:

 <<< FAILURE! - in EmployeeTest
testEquals(EmployeeTest)  Time elapsed: <<< ERROR!
org.mockito.exceptions.misusing.UnfinishedVerificationException: 
Missing method call for verify(mock) here:
-> at EmployeeTest.testEquals(EmployeeTest.java:20)

Example of correct verification:
    verify(mock).doSomething()

Also, this error might show up because you verify either of: final/private/equals()/hashCode() methods.
Those methods *cannot* be stubbed/verified.
Mocking methods declared on non-public parent classes is not supported.

Sample test method. Using Mockito.verify() for testing equals method.  

2 个答案:

答案 0 :(得分:1)

如果你想测试你的equals方法,我建议你使用像Equalsverifier这样的库而不是使用模拟器。

答案 1 :(得分:0)

正如错误消息中所述

  

final / private / equals()/ hashCode()方法。那些方法不能   存根/验证。

因此您必须创建真实的测试对象(而不是模拟),然后通过将其与实际预期对象进行比较来验证equals()

或者,您可以在模拟上验证其他方法(即验证姓氏是否已正确设置verify(employee).setLastName("ExpectedLastName"))。