Quizás me he quedado corto en mi búsqueda, pero no puedo encontrar ninguna documentación o discusión relacionada con cómo escribir una prueba unitaria para una clase/método Java que a su vez otros métodos no privados. Aparentemente, Mockito toma la posición de que tal vez haya algo mal con el diseño (no realmente OO) si se debe usar un espía para probar un método donde es necesario burlarse de las llamadas internas al método. No estoy seguro de que esto sea siempre cierto. Pero usar un espía parece ser la única forma de lograr esto. Por ejemplo, ¿por qué no podría tener un método de estilo "envoltorio" que a su vez dependa de otros métodos para la funcionalidad primitiva pero que además proporcione funcionalidad, manejo de errores, registro o diferentes ramas dependientes de los resultados de los otros métodos, etc.?Prueba unitaria para el método que llama a otros métodos múltiples usando Mockito
Así que mi pregunta es doble:
- sustancia es poco diseñados y código implementado para tener un método que llama internamente otros métodos?
- ¿Cuál es la mejor práctica y/o enfoque al escribir una prueba unitaria para dicho método (suponiendo que sea una buena idea) si uno ha elegido a Mockito como su marco burlón?
Esta podría ser una petición difícil, pero yo preferiría para aquellos que deciden a responder no sólo a volver a publicar la verborrea Mockito y/o postura sobre espías como ya soy consciente de que el enfoque y la ideología. Además, también he usado Powermockito. Para mí, el problema aquí es que Mockito desarrolló este marco donde se tuvieron que crear soluciones adicionales para apoyar esta necesidad. Entonces, supongo que la pregunta a la que quiero responder es si los espías son "malos" y Powermockito no estaba disponible, ¿cómo se supone que uno debe probar un método que llama a otros métodos no privados?
Cualquier código que tenga métodos públicos llamando a otros métodos públicos (OK, tal vez excluyendo getters y setters) debe ser examinado por la posible violación del principio de SLAP y/o el antipatrón de la barcaza de basura. – Olaf
¿Te importaría compartir algunas fuentes confiables con respecto a esta información? – aquacode
Aquí tienes: http://www.ibm.com/developerworks/java/library/j-eaed4/index.html y http://www.drdobbs.com/four-wheel-drive-garbage-barges-and -obje/184414617. – Olaf