Pruebas basadas en datos con Java y MongoDB

Guía práctica de pruebas dirigidas por datos con Java y MongoDB: modela el dominio, desarrolla consultas con semántica de negocio, aísla pruebas con Testcontainers y Weld, y valida con JUnit 5 y DataFaker.

18 ago 2025 • 6 min de lectura • Equip Q2BSTUDIO

Inteligencia-Artificial-

Este artículo fue escrito por Otavio Santana, reconocido contribuidor en el ecosistema Java y de código abierto, y ha sido reescrito y traducido para ofrecer una guía práctica sobre pruebas impulsadas por datos con Java y MongoDB

Introducción a las pruebas dirigidas por datos

Las pruebas dirigidas por datos o data driven testing permiten validar el comportamiento de negocio mediante múltiples conjuntos de datos sin replicar la lógica de prueba. En aplicaciones reales, muchas reglas de negocio residen dentro de consultas y filtros de la base de datos. Cuando estas consultas fallan, la aplicación puede compilar correctamente pero producir resultados incorrectos en producción. Por eso es crítico probar consultas con datos representativos y escenarios de borde.

Por qué aplicar pruebas dirigidas por datos con MongoDB y Java

MongoDB y las bases de datos documentales facilitan modelar reglas mediante condiciones de consulta. Al combinar Jakarta Data y Eclipse JNoSQL con herramientas de pruebas modernas como JUnit 5, AssertJ y Testcontainers, podemos expresar consultas con semántica de negocio, ejecutar pruebas aisladas en contenedores y aumentar la confianza en la persistencia más allá de operaciones CRUD básicas.

Requisitos mínimos

Para seguir los ejemplos de esta guía se recomienda contar con Java 21, Maven y un clúster de MongoDB. Se puede usar MongoDB Atlas o ejecutar un contenedor local con Docker. En las pruebas se emplean Testcontainers para levantar una instancia efímera de MongoDB y Weld para arrancar un contenedor ligero de CDI durante las pruebas.

Dependencias y herramientas empleadas

Entre las dependencias relevantes se usan Jakarta NoSQL y Jakarta Data implementadas por Eclipse JNoSQL, la integración con MongoDB, bibliotecas de pruebas como JUnit 5, Parametrized Tests, AssertJ para aserciones fluidas, Testcontainers para bases de datos en contenedores, Weld para inyección CDI en pruebas y utilidades como DataFaker para generar datos de prueba.

Modelado del dominio

Como ejemplo se modela un dominio de gestión hotelera sencillo: entidad Room con atributos como identificador, número, tipo de habitación, estado de la habitación, estado de limpieza, permiso para fumar y marcado de mantenimiento. Se definen enumerados para RoomType con valores como STANDARD, DELUXE, SUITE y VIP_SUITE y para RoomStatus y CleanStatus según las necesidades del negocio. Este enfoque orientado a objetos facilita que las consultas reflejen la intención de negocio y no solo campos técnicos.

Consultas con semántica de negocio

En el repositorio se diseñan consultas con Jakarta Data que expresan condiciones legibles por negocio, por ejemplo consultas para encontrar VIP_SUITE disponibles y fuera de mantenimiento, habitaciones no VIP que estén limpias y disponibles, habitaciones que requieren limpieza, y habitaciones para fumadores disponibles. Estas consultas se describen con sintaxis declarativa para que su intención sea clara en el propio repositorio.

Aislar la base de datos en pruebas

Para que las pruebas validen las consultas en condiciones reales sin depender de infraestructura externa, se usa Testcontainers para crear y arrancar un contenedor MongoDB. Mediante una fábrica de manager document manager se configura la conexión a la instancia temporal. En pruebas CDI se puede sustituir el proveedor de DatabaseManager por una alternativa de prueba que retorne la conexión al contenedor, asegurando que las pruebas siempre ejecuten contra un entorno controlado.

Patrón de pruebas y uso de Weld en JUnit 5

Weld junit permite arrancar un contenedor CDI ligero y controlar qué paquetes y extensiones se cargan en el contexto de prueba. Con esto se inyecta el repositorio y las dependencias necesarias. Las pruebas se organizan como pruebas parametrizadas y métodos con MethodSource o EnumSource para generar múltiples combinaciones de entrada, que es la esencia del data driven testing.

Escenarios de prueba típicos

Entre los escenarios ejemplares para cubrir con DDT están

• Validar que insertar una habitación genera un identificador y preserva los campos enviados.

• Consultar habitaciones por tipo para validar que todos los resultados coinciden con el tipo solicitado.

• Encontrar habitaciones VIP listas para huéspedes verificando disponibilidad y que no estén en mantenimiento.

• Listar habitaciones estándar disponibles y limpias.

• Identificar habitaciones que requieren limpieza excluyendo aquellas fuera de servicio.

En cada caso se usan aserciones suaves con AssertJ para que una sola ejecución informe múltiples fallos de verificación y facilite el diagnóstico.

Generación y combinación de datos

Para crear escenarios variados se puede usar DataFaker y generadores aleatorios de enumerados. Las pruebas parametrizadas reciben como entrada objetos Room construidos de forma programática y guardan el estado en la base de datos del contenedor, luego ejecutan las consultas del repositorio y validan los resultados contra las expectativas de negocio.

Beneficios de esta aproximación

Las pruebas dirigidas por datos trasladan el foco de pruebas desde detalles técnicos finos hacia la validación del comportamiento de negocio. Al probar consultas en un entorno controlado y con datos variados se reduce el riesgo de errores en producción, se documenta la intención de las consultas y se mejora la mantenibilidad del código de persistencia.

Recomendaciones prácticas

• Mantener las consultas expresadas en lenguaje de dominio para facilitar su comprensión.

• Automatizar la creación y limpieza de datos en cada prueba para garantizar idempotencia y aislamiento.

• Usar pruebas parametrizadas y fuentes de datos que cubran escenarios normales y bordes.

• Integrar Testcontainers en pipelines CI para ejecutar las pruebas contra una instancia real de MongoDB sin depender de entornos externos.

Sobre Q2BSTUDIO

En Q2BSTUDIO somos una empresa de desarrollo de software dedicada a construir aplicaciones a medida y software a medida pensadas para resolver retos reales de negocio. Somos especialistas en inteligencia artificial e ia para empresas, diseño e implementación de agentes IA y soluciones analíticas que combinan power bi y otras tecnologías. Nuestro portfolio incluye servicios de ciberseguridad, servicios cloud aws y azure, y servicios inteligencia de negocio para transformar datos en decisiones. Trabajamos con metodologías ágiles para entregar soluciones seguras, escalables y alineadas con los objetivos de cada cliente.

Cómo Q2BSTUDIO puede ayudar en proyectos similares

Si necesitas implementar pruebas dirigidas por datos en proyectos Java con MongoDB, en Q2BSTUDIO podemos diseñar la arquitectura de persistencia, crear suites de pruebas reproducibles con Testcontainers, asegurar el cumplimiento de políticas de seguridad y desplegar soluciones en servicios cloud aws y azure. También desarrollamos soluciones de inteligencia artificial a medida, agentes IA para automatizar procesos y paneles interactivos con power bi como parte de los servicios inteligencia de negocio.

Conclusión

El uso de data driven testing para validar consultas y reglas de negocio en MongoDB aporta claridad, confianza y documentación viva del comportamiento esperado. Combinando Jakarta Data, Eclipse JNoSQL, Weld, Testcontainers y JUnit 5 se consigue un entorno de pruebas expresivo y aislado que protege la lógica crítica de persistencia. Si quieres llevar estas prácticas a tu organización o desarrollar software a medida con enfoque en calidad, ponte en contacto con Q2BSTUDIO y exploraremos la solución adecuada para tu caso concreto.

Recursos y ejemplo

Repositorio de referencia en GitHub soujava slash data-driven-test-mongodb para consultar el ejemplo utilizado en esta guía

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Intel·ligència artificial

Agents d'IA, chatbots i assistents intel·ligents que automatitzen tasques i atenen els teus clients 24/7 per millorar l'eficiència del teu negoci.

Més info

Desenvolupament de programari

Aplicacions web, mòbils i d'escriptori, intranets, e-commerce, SaaS i plataformes de gestió dissenyades per a les necessitats concretes de la teva empresa.

Més info

Serveis cloud

Migració, infraestructura, hosting gestionat, alta disponibilitat i seguretat en Microsoft Azure i Amazon Web Services perquè el teu negoci escali sense límits.

Més info

Ciberseguretat i pentesting

Auditories de seguretat, test d'intrusió (pentesting) i protecció d'aplicacions, dades i infraestructura on-premise i cloud, amb hacking ètic i compliment normatiu.

Més info

Business Intelligence

Quadres de comandament i anàlisi de dades amb Power BI: integrem les teves fonts, dissenyem dashboards i KPIs i convertim les teves dades en decisions.

Més info

Automatització de processos

Automatitzem tasques repetitives i connectem les teves aplicacions amb n8n, Power Automate, Make i RPA, eliminant treball manual i augmentant la productivitat.

Més info

Formació per a empreses

Formem els teus equips en tecnologia amb criteri: desenvolupament web, bases de dades, Git, bones pràctiques i seguretat, automatització amb n8n, intel·ligència artificial per a empreses i creació de solucions d'IA amb Azure AI Foundry.

Més info

Auditoria de codi

Auditem el codi que creguis tu, el teu equip o una IA: et diem què està bé i què millorar, el securitzem i el deixem llest per a producció, web o app.

Més info

Generació d'imatges amb IA

Creem per tu les imatges que necessita el teu negoci amb intel·ligència artificial: producte, xarxes, publicitat, il·lustració i avatars. Tu ens dius què vols i t'ho lliurem llest per fer servir.

Més info

Generació de vídeos amb IA

Creem per tu vídeos amb intel·ligència artificial: promocionals, per a xarxes, presentadors virtuals, doblatge i animacions. Ens comptes la idea i t'ho lliurem muntat i llest per publicar.

Més info

Avatars conversacionals amb IA

Creem avatars conversacionals amb IA —humans digitals amb cara i veu— que atenen els teus clients i equips amb el coneixement de la teva empresa, a la teva web, monitors interactius, WhatsApp o Teams.

Més info

Màrqueting Online i IA

Google Ads, Meta Ads, LinkedIn Ads i posicionament en motors d'IA (GEO/AEO): captem clients i fem que la teva marca aparegui on et busquen, també a ChatGPT, Gemini i Perplexity.

Més info

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.

Live Chat