Estoy usando Java 6, JUnit 4.8.1 y escribiendo una aplicación de consola. Mi aplicación tiene un campo miembro que no esté expuesto ...Java: ¿Cómo me burlo de un método de un campo cuando ese campo no está expuesto?
public class MyApp {
...
private OpportunitiesService m_oppsSvc;
private void initServices() {
…
m_oppsSvc = new OpportunitiesServiceImpl(…);
}
...
}
Quiero burlarse de un comportamiento de tal manera que cada vez que uno de los métodos de mi servicio se llama, (por ejemplo m_oppsSvc.getResults()
), siempre se devuelve el mismo resultado. ¿Cómo puedo hacer eso? No hay un método setter para el campo. Actualmente estoy trabajando con Mockito 1.8.4. ¿Es posible hacer esto con Mockito o algún otro framework simulado?
¿Puede usted no crear un método de selección? – jrad
Posible duplicado de [¿Cómo pruebas tu unidad de métodos privados] (http://programmers.stackexchange.com/questions/100959/how-do-you-unit-test-private-methods)? –
¿Qué estás intentando probar? es 'getResults()' public? ¿Tiene un campo privado asociado o se calcula en tiempo de ejecución? Dependiendo de las respuestas, es posible que pueda usar un 'espía' o que la burla no tenga nada que ver con eso y podría usar algo como 'org.springframework.test.util.ReflectionTestUtils' para simplemente establecer el campo privado en el valor que desea – jhericks