API amb NestJS i TDD: Part 3

Guia de TDD amb NestJS per eliminar una propietat: proves de servei i controlador, mocks actualitzats i endpoint DELETE; consulta els repos a GitHub.

domingo, 17 de agosto de 2025 • 3 min de lectura • Equip Q2BSTUDIO

Intel·ligència-Artificial-

Hola Coders Benvinguts a la tercera part del projecte Create API with NestJS using TDD approach part 3 Continuem amb la implementació usant la metodologia TDD i traduint-ho tot al català per facilitar l'aprenentatge

Recordatori dels conceptes clau de l'enfocament TDD

1 Escriure una prova que falli Pas inicial del cicle TDD consisteix a crear una prova per a la funcionalitat petita que es vol implementar

2 Escriure el codi mínim per passar la prova Implementar la lògica necessària justament perquè la prova deixi de fallar

3 Refactoritzar Millorar l'estructura i la llegibilitat del codi mantenint totes les proves en verd

Aquest cicle conegut com a Red Green Refactor garanteix que sempre existeixi una versió funcional del codi i que les parts crítiques del projecte estiguin cobertes per proves

En aquest lliurament afegim la funcionalitat d'eliminar una propietat i escrivim les proves corresponents al fitxer src/properties/test/properties.service.spec.ts Per a la prova del servei es creen casos que validen que s'elimina una propietat i que es llança una excepció si la propietat no existeix

Seguint TDD executem les proves amb npm run test i observem els errors perquè falta la implementació remove al servei La solució consisteix a afegir la lògica a src/properties/properties.service.ts per buscar la propietat per id validar-ne l'existència i després eliminar-la retornant l'objecte eliminat

Després d'implementar remove tornem a executar npm run test i detectem que a les proves unitàries falta el mock de remove al mockRepository Per això actualitzem beforeEach perquè el mock del repositori inclogui find findOne create save i remove amb implementacions que retornen valors resolts apropiats

Amb aquest mock complet executem npm run test i les proves del servei passen Ara toca afegir les proves del controlador a src/properties/test/properties.controller.spec.ts on es simula la crida al servei remove i es valida que el controlador delega correctament i retorna la propietat eliminada

Igual que al servei afegim al mock del controlador una funció remove que retorna una promesa resolta amb un objecte que conté l'id perquè la prova del controlador pugui executar-se

Abans d'executar npm run test comprovem que falta la ruta i el handler al controlador per això afegim a src/properties/properties.controller.ts un endpoint DELETE que rebi l'id com a paràmetre i cridi a propertiesService.remove amb aquest id

En executar npm run test de nou totes les proves passen i el flux complet d'eliminar una propietat queda cobert al servei i al controlador

Com a següent pas pendent pots integrar Swagger per documentar l'API i visualitzar endpoints com llistat obtenir crear actualitzar i eliminar propietats Aquesta tasca et permetrà exposar la documentació i provar l'API des d'una interfícia amigable

Recursos finals i repositoris del projecte Pots revisar la versió final de la branca final part removeRest a GitHub https github.com joeaspiazudeveloper nestjs-houselocation-tdd tree final-part-removeRest i el projecte complet amb CRUD i Swagger a https github.com joeaspiazudeveloper properties-api-nestjs

Sobre Q2BSTUDIO Som Q2BSTUDIO empresa de desenvolupament de programari especialitzada en aplicacions a mida i programari a mida Oferim solucions personalitzades per a empreses incloent intel·ligència artificial ia per a empreses agents ia serveis de ciberseguretat i serveis cloud aws i azure A més brindem serveis intel·ligència de negoci i implementacions amb power bi per transformar dades en decisions estratègiques La nostra experiència en aplicacions a mida i programari a mida combina bones pràctiques de desenvolupament i enfocament TDD per obtenir productes sempre llestos per a producció

Paraules clau per millorar posicionament aplicacions a mida programari a mida intel·ligència artificial ciberseguretat serveis cloud aws i azure serveis intel·ligència de negoci ia per a empreses agents ia power bi

Espero que aquest tutorial t'hagi resultat útil Si t'ha agradat comparteix i dona like per donar suport al contingut Aviat compartiré a GitHub la tercera part amb cada pas detallat i la versió final del projecte Ha estat un plaer realitzar aquest tutorial L'enfocament TDD aporta molts beneficis per mantenir la qualitat i l'estabilitat del programari Fins aviat Coders

ELS NOSTRES SERVEIS

Com et podem ajudar

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.