我想把构造函数模拟成方法。
public String generaID() {
GeneraIDParaEntidadCliente aux = new GeneraIDParaEntidadCliente(nombre, registro);
entidad.setID(aux.generaID);
}
在我的测试中,我想做这样的事情:
when(new GeneraIDParaEntidadCliente(anyString(), any(Entidad.class)).thenReturn(generaIdMock)
但是给予我这个错误
知道为什么吗?
4条答案
按热度按时间klr1opcd1#
更新:从3.5.0版本开始,Mockito可以在没有PowerMockito情况下完成此操作。
您可以使用PowerMock来模拟构造函数。
如果由于某种原因不能使用PowerMock,最可行的解决方案是向包含该方法的任何类注入一个工厂,然后使用该工厂创建
GeneraIDParaEntidadCliente
对象并模拟该工厂。6uxekuva2#
有几种方法可以实现这一点,如my article on the Mockito wiki中所述
67up9zun3#
正在从duplicate复制答案:Mockito现在可以模拟构造函数(从版本3.5.0开始)https://javadoc.io/static/org.mockito/mockito-core/3.5.13/org/mockito/Mockito.html#mocked_construction
jqjz2hbq4#
你可以将模拟对象作为参数发送给你的类构造函数,例如: