TDD Buenas prácticas para desarrollo
Se van a ejecutar una serie de buenas prácticas, testeo, estructura, etc. para el desarrollo de código.
Por ej, una lib php:
- usa Composer (archivo composer.json) para declarar sus dependencias (entrada require)
- dice donde está su código en el dir src (entrada autoload)
- Para testar, normalmente usamos el autoload-dev y require-dev para levantar dependencias usadas por la lib "SOLO PARA TESTEARLA LOCALMENTE Y AISLADA".
- cuando un proyecto use la lib (la incluya vía su composer.json), no entra en juego lo que definimos para la lib de dicha dependencia ni autoload (de lo que tenga en require-dev ni autoload-dev de la lib, no se lee/usa en el proyecto superior)
Tareas previas
-
clonar el repo, agregar una nueva rama "feature/phpunit" utilizando Gitflow (avh es la variante), publicar la rama y crear un "merge request" en este repo -
agregar la dependencia phpunit 9.5 al composer (como dependencia de desarrollo, dev!), descargar todo via "composer update", verificar carpeta "vendor" generada en la lib -
agregar carpeta tests
- normalmente, la carpeta test hace espejo de la carpeta src que contiene el código a testear
- crear la carpeta
tests/src/SIU/TobaDb/
que contendran las clases de test nuevas a crear
-
Agregar config inicial - crear el archivo phpunit.xml que tiene la config de uso de phpunit (siempre es requerido, ver la doc y dejar uno inicial, luego se mejorará)
- el phpunit.xml tiene que apuntar al dir de ./tests para leer los Test creados
- en el composer.json, asegurarse de tener una entrada para autoload-dev y que tenga el dir tests/src mapeado
- ejecutar "composer dump-auload" para asegurarse que se se actualiza el autoload dado
Tareas de TDD
-
crear un test para ErrorDb.php -
crear un test para DbPDO.php
Edited by Francisco del Pozo