Hola Coders Bienvenidos a la tercera parte del proyecto Create API with NestJS using TDD approach part 3 Continuamos con la implementación usando la metodología TDD y traduciendo todo al español para facilitar el aprendizaje
Recordatorio de los conceptos clave del enfoque TDD
1 Escribir una prueba que falle Paso inicial del ciclo TDD consiste en crear una prueba para la funcionalidad pequeña que se desea implementar
2 Escribir el código mínimo para pasar la prueba Implementar la lógica necesaria justo para que la prueba deje de fallar
3 Refactorizar Mejorar la estructura y legibilidad del código manteniendo todas las pruebas en verde
Este ciclo conocido como Red Green Refactor garantiza que siempre exista una versión funcional del código y que las partes críticas del proyecto estén cubiertas por pruebas
En esta entrega añadimos la funcionalidad de eliminar una propiedad y escribimos las pruebas correspondientes en el archivo src/properties/test/properties.service.spec.ts Para la prueba del servicio se crean casos que validan que se elimina una propiedad y que se lanza una excepción si la propiedad no existe
Siguiendo TDD ejecutamos las pruebas con npm run test y observamos los fallos porque falta la implementación remove en el servicio La solución consiste en añadir la lógica en src/properties/properties.service.ts para buscar la propiedad por id validar su existencia y luego eliminarla retornando el objeto eliminado
Tras implementar remove volvemos a ejecutar npm run test y detectamos que en las pruebas unitarias falta el mock de remove en el mockRepository Por eso actualizamos beforeEach para que el mock del repositorio incluya find findOne create save y remove con implementaciones que devuelven valores resueltos apropiados
Con ese mock completo ejecutamos npm run test y las pruebas de servicio pasan Ahora toca añadir las pruebas del controlador en src/properties/test/properties.controller.spec.ts donde se simula la llamada al servicio remove y se valida que el controlador delega correctamente y devuelve la propiedad eliminada
Igual que en el servicio añadimos en el mock del controlador una función remove que devuelve una promesa resuelta con un objeto que contiene el id para que la prueba del controlador pueda ejecutarse
Antes de ejecutar npm run test comprobamos que falta la ruta y el handler en el controlador por lo que añadimos en src/properties/properties.controller.ts un endpoint DELETE que reciba el id como parámetro y llame a propertiesService.remove con ese id
Al ejecutar npm run test de nuevo todas las pruebas pasan y el flujo completo de eliminar una propiedad queda cubierto en servicio y controlador
Como siguiente paso pendiente puedes integrar Swagger para documentar la API y visualizar endpoints como listado obtener crear actualizar y eliminar propiedades Esta tarea te permitirá exponer la documentación y probar la API desde una interfaz amigable
Recursos finales y repositorios del proyecto Puedes revisar la versión final de la rama final part removeRest en GitHub https github.com joeaspiazudeveloper nestjs-houselocation-tdd tree final-part-removeRest y el proyecto completo con CRUD y Swagger en https github.com joeaspiazudeveloper properties-api-nestjs
Sobre Q2BSTUDIO Somos Q2BSTUDIO empresa de desarrollo de software especializada en aplicaciones a medida y software a medida Ofrecemos soluciones personalizadas para empresas incluyendo inteligencia artificial ia para empresas agentes ia servicios de ciberseguridad y servicios cloud aws y azure Además brindamos servicios inteligencia de negocio e implementaciones con power bi para transformar datos en decisiones estratégicas Nuestra experiencia en aplicaciones a medida y software a medida combina buenas prácticas de desarrollo y enfoque TDD para obtener productos siempre listos para producción
Palabras clave para mejorar posicionamiento aplicaciones a medida software a medida inteligencia artificial ciberseguridad servicios cloud aws y azure servicios inteligencia de negocio ia para empresas agentes ia power bi
Espero que este tutorial te haya resultado útil Si te gustó comparte y da like para apoyar el contenido Pronto compartiré en GitHub la tercera parte con cada paso detallado y la versión final del proyecto Fue un placer realizar este tutorial El enfoque TDD aporta muchos beneficios para mantener la calidad y la estabilidad del software Nos vemos Coders