Ver índice de contenidos del libro

13.13. Creando pruebas unitarias

Como las tareas pueden hacer tantas cosas diferentes, no es sencillo crear pruebas unitarias. Por consiguiente, no existe una única forma de probar las tareas, sino que existen unas recomendaciones que puedes seguir para que tus tareas sean más sencillas de probar.

En primer lugar, piensa que tu tarea es un controlador. ¿Recuerdas la recomendación básica de los controladores? Los controladores deben tener poco código y las clases del modelo mucho código. Así que traslada toda la lógica de negocio a las clases de tus modelos de forma que puedas probar los modelos en vez de tu tarea, que es algo mucho más fácil.

Cuando ya no puedas trasladar más código a los modelos, divide el método execute() en pequeños trozos de código que sean fáciles de probar. Cada trozo debería residir en su propio método sencillo y accesible (métodos de tipo public). Dividir el código tiene muchas ventajas:

  1. hace que el método execute() de la tarea sea más fácil de leer
  2. facilita las pruebas de la tarea
  3. hace que la tarea sea mas fácil de extender

Finalmente, si no encuentras ninguna forma de probar esa tarea tan espectacular que acabas de crear, existen dos posibilidades: que la tarea esté mal escrita o que tengas que pedir a alguien su opinión. También puedes investigar el código de otros programadores para aprender a probar las tareas (el propio código de Symfony incluye pruebas para todas sus tareas, incluso para los generadores).