Java 使用Mockito测试Model class equals()方法

Java 使用Mockito测试Model class equals()方法,java,mockito,Java,Mockito,如何测试模型类'equals()方法。我一直遇到以下问题: <<< FAILURE! - in EmployeeTest testEquals(EmployeeTest) Time elapsed: <<< ERROR! org.mockito.exceptions.misusing.UnfinishedVerificationException: Missing method call for verify(mock) here: -> at E

如何测试模型类'
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.  
Mockito.verify()给出了上述问题

私有静态员工模拟员工;
私人静态员工;
@课前
公共静态无效设置(){
mockedEmployee=mock(Employee.class);
员工=新员工(“第一名”、“最后一名”);
when(mockedEmployee.getFirstName())。然后return(Employee.getFirstName());
}
@试验
公开考试资格(){
Mockito.verify(mockedEmployee).equals(employee);
}

如果您想测试equals方法,我建议您使用类库,而不要使用模拟库。

如错误消息中所述

final/private/equals()/hashCode()方法。这些方法是不可能的 存根/核实

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


或者,您也可以在mock上验证其他方法(即验证姓氏设置是否正确
verify(employee).setLastName(“ExpectedLastName”)

谢谢您的回复。我不想使用另一个库来实现平等。有没有办法使用Mockito测试equals()?应该使用JUnit而不是Mockito。你不需要嘲笑。雇员雇员1=新雇员(“第一名”、“最后一名”);雇员雇员2=新雇员(“第一名”、“最后一名”);资产质量(员工1、员工2)。