我想将构造函数模拟为方法。
public String generaID() {
GeneraIDParaEntidadCliente aux = new GeneraIDParaEntidadCliente(nombre, registro);
entidad.setID(aux.generaID);
}
在我的测试中,我想做这样的事情:
when(new GeneraIDParaEntidadCliente(anyString(), any(Entidad.class)).thenReturn(generaIdMock)
但请告诉我错误 org.mockito.exceptions.misusing.InvalidUseOfMatchersException:
知道为什么吗?
答案 0 :(得分:8)
您可以使用PowerMock来模拟构造函数。
如果因某些原因无法使用PowerMock,最可行的解决方案是将工厂注入包含此方法的任何类。然后,您将使用工厂创建GeneraIDParaEntidadCliente
对象并模拟工厂。
答案 1 :(得分:1)
有两种方法可以执行此操作,如my article on the Mockito wiki
中所述答案 2 :(得分:0)
您可以将模拟对象作为参数传递给类构造函数,例如:
// define you object
public MainClassObj instanceClass;
// mock input parameter
MYClassObj mockedObj = Mockito.mock(MYClassObj.class);
// call construvtor with mocked parameter
instanceClass = new instanceClass(mockedObj);