He consultado preguntas similares en este foro, pero ninguna de ellas responde mi pregunta. Suena extraño, pero ¿es posible burlarse de una llamada de constructor al objeto que te estás burlando?EasyMock: simula una llamada de constructor en java
Ejemplo:
class RealGuy {
....
public void someMethod(Customer customer) {
Customer customer = new Customer(145);
}
}
class MyUnitTest() {
public Customer customerMock = createMock(Customer.class)
public void test1() {
//i can inject the mock object, but it's still calling the constuctor
realGuyobj.someMethod(customerMock);
//the constructor call for constructor makes database connections, and such.
}
}
¿Cómo puedo esperar una llamada al constructor? Puedo cambiar la llamada del constructor del Cliente para usar newInstance, pero no estoy seguro si eso ayudará. No tengo control sobre lo que hace el cuerpo del constructor new Customer(145)
.
¿Esto es posible?
Sería una buena idea no hacer conexiones de bases de datos en un constructor. Inyecta las conexiones en la clase usándolas. –
De acuerdo. Pero no tengo control sobre la lógica del constructor del Cliente. – Setzer