[英]Classcast exception when using mockito
我在测试用例中使用以下代码获取类广播异常。
Employee employee1= new Employee();
Employee employee2= new Employee();
Employee employee3= new Employee();
int id=1234;
when(employee1.getID()).thenReturn(id);
when(employee2.getID()).thenReturn(id);
when(employee3.getID()).thenReturn(id);
我想将其概括为
when((((Employee)Matchers.any(Employee.class)).getID())).thenReturn(id);
我做错什么了吗?
java.lang.ClassCastException: org.hamcrest.core.IsInstanceOf cannot be cast to com.site.model.Employee
如果您发现在使用Mockito时需要打字,则通常会遇到问题。
我想您正在尝试执行以下操作:
Employee employee = Mockito.mock(Employee.class);
when(employee.getId()).thenReturn(id);
嗨,我知道这是一个非常老的问题,但是今天我自己还是遇到了这个问题。
无论如何,它都与hamcrest如何处理Matchers有关。 我基本上不返回给定的类型,而是围绕它的包装。
修复它的最简单方法是使用来自模仿者而不是hamcrest的任何东西
when((((Employee)org.mockito.Matchers.any(Employee.class)).getID())).thenReturn(id);
有关更多详细信息,请参见以下答案: 与Mockito和Hamcrest Matchers的比较
希望它可以帮助任何绊脚的人;)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.