繁体   English   中英

使用Mockito时发生Classcast异常

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM