Duplicar posible: What’s the best way of unit testing private methods?¿Cómo debo probar los métodos privados en Java?
yo soy un programador principiante, y no sé cómo escribir una aplicación que estar bien estructurado para las pruebas unitarias. Quiero escribir aplicaciones con la capacidad de agregar luego pruebas efectivas de unidades.
El problema es con los métodos private
; no pueden probarse fuera de sus clases.
¿Debo resolver este problema cambiando todos los métodos que son private
a protected
, y dejar que la clase de prueba extienda la clase de origen? ¿O hay una mejor solución?
mi solución (splitLetters privadas => splitLetters protegidas) sería el siguiente: Clase
Fuente: Clase de
class MyClass{
protected splitLetters(int num){
return num+2;
}
}
prueba:
class Test_MyClass extend MyClass{
public splitLettersTest(){
for(int i=0;i<100;i++){
System.println(parent.splitLetters(i));
}
}
}
Soluciones:
No probando métodos privados - A veces un método privado está haciendo tareas muy complicadas que deben ser probadas muy bien, y no queremos que el usuario tenga acceso a este método. Pronto la solución está cambiando los métodos privados a protegidos.
manera clase anidada para probar - problemático porque QA hacer cambios en el código fuente
Reflexión - Si esto hace que sea posible llamar métodos privados, se ve como una gran solución http://www.artima.com/suiterunner/private3.html (I debería aprender más para comprender la reflexión. No entiendo cómo las reflexiones no rompen la idea de tener métodos públicos y privados si podemos llamar a métodos privados de otra clase)
No define los métodos privados (como mostré en mi solución) - problemático porque a veces tenemos que definir un método privado.
Muchos argumentarían que los métodos privados no necesitan ser probados, solo interfaces públicas. – David
Duplicado de http://stackoverflow.com/questions/34571/whats-the-best-way-of-unit-testing-private-methods – onof
Esta pregunta ya está respondida [aquí] (http://stackoverflow.com/ preguntas/34571/whats-the-best-way-de-unit-testing-private-methods). – jevakallio