TDD Exercise 5.3 - Controllers (Servlets) With Mocks & Spies
En este ejemplo surge la necesidad de crear mocks más complejos; mocks que devuelven mocks, ya que nos lo exige el framework del contenedor.
- En un ejercicio posterior veremos que en este caso los tests se pueden simplificar codificandolos manualmente sin usar una librería de creación automática de mocks.
Corolario: Las librerías de ayuda al testing facilitan el trabajo, pero no hay que empeñarse con su uso cuando no es necesario, siempre buscamos la simplicidad.
- Ejemplo de Spy (Mock parcial del Objetct Under Test). No recomendado para unit testing, síntoma de "code smell", suele indicar un diseño pobre, o que no está diseñado con testing en mente.
Pero es útil usando librerías de terceros, que no controlamos, como el contenedor de servlets.
- Codificación Manual de un Spy para el Object Under Tests.
RESTRICCIONES PARA EL EJERCICIO
El requestDispatcher normalmente se obtiene a través del request, y no del servletContext. Para mostrar ejemplos de la técnica de spy, se va a restingir a que solo podemos obtener el requestDispatcher a través de los métodos heredados de HttpServlet.