API con NestJS y TDD: Parte 3

Guía de TDD con NestJS para eliminar una propiedad: pruebas de servicio y controlador, mocks actualizados y endpoint DELETE; consulta los repos en GitHub.

17 ago 2025 • 3 min read • Q2BSTUDIO Team

Inteligencia-Artificial-

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

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.

Live Chat