与mockito的模拟构造函数

我想将构造函数模拟为方法。

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:

知道为什么吗?

您可以使用PowerMock来模拟构造函数。

如果由于某种原因无法使用PowerMock,最可行的解决方案是将工厂注入包含此方法的任何类。 然后,您将使用工厂创建GeneraIDParaEntidadCliente对象并模拟工厂。

有几种方法可以做到这一点,在我关于Mockito wiki的文章中有所描述

您可以将模拟对象作为参数发送到类构造函数,forms示例:

 // define you object public MainClassObj instanceClass; // mock input parameter MYClassObj mockedObj = Mockito.mock(MYClassObj.class); // call construvtor with mocked parameter instanceClass = new instanceClass(mockedObj);