TDD en Laravel 5.3
El enfoque del desarrollo en base a TDD o Test-driven development es distinto al enfoque tradicional, donde los analistas o desarrolladores levantan requerimientos desde el diseño relacional de la base de datos hasta la programación de los módulos correspondientes.
Cuando creamos una aplicación en base a TDD, el enfoque es el siguiente:
- Pensar y desglosar explicitamente como va a funcionar el nuevo modulo que se va desarrollar, teniendo en cuenta los datos que posees, el proceso que debes ejecutar y la respuesta que deseas esperar.
- Escribir la prueba unitaria en base al análisis previsto. https://laravel.com/docs/5.3/testing#creating-and-running-tests
- Ejecuta la prueba (puedes usar en la consola: phpunit o vendor/bin/phpunit — filter test_un_usuario_registra_items, este ultimo si solamente quieres ejecutar una prueba de forma individual)
- Cuando te salga un error, escribe el código que necesitas para que la prueba pase.
El secreto de esta metodología, es escribir código en base a las pruebas que se analizaron, de esta forma, se asegura la calidad del feature. (es importante que aprendamos a escribir pruebas de calidad)
Para escribir una prueba de calidad, sigue analíticamente los siguientes pasos:
- Escribe que datos o condiciones iniciales debe tener el modulo para ejecutarse
- Escribe el código que ejecutara las acciones que el usuario puede realizar
- Escribe el código que se espera como respuesta de la acción, estos resultados pueden ser: cambios en la base de datos, emails enviados, redirecciones de rutas, entre otros.
No esta demás recomendar la documentacion oficial https://laravel.com/docs/5.3/ y tambien la plataforma que te especializa en php con laravel en sus diferentes versiones https://styde.net/