Prueba contra una base de datos real en un contenedor en vez de simular la capa de datos, porque la mayoría de los bugs viven en consultas, migraciones y transacciones que un mock no puede expresar. Para las APIs externas, simula en la frontera del transporte con respuestas HTTP grabadas o preparadas, de modo que tu propio código cliente se ejercite, y añade un conjunto pequeño de pruebas de contrato contra el servicio real para detectar desviaciones. Mantén los tests aislados con transacciones por test o esquemas nuevos.
Por qué lo preguntan los entrevistadores
El entrevistador quiere saber si tus tests detectarían de verdad una regresión. Simular la capa de repositorio produce suites que pasan mientras producción se rompe, así que está atento a pruebas con base de datos real, stubs HTTP en la frontera y un plan para detectar cuándo cambia un tercero. La velocidad y el aislamiento también importan, porque una suite lenta o inestable se acaba saltando por muy completa que sea.
Cómo estructurar tu respuesta
- Enuncia el principio: simula en la frontera del proceso, no dentro de tu propio código.
- Usa una base de datos real en un contenedor y explica el aislamiento entre tests.
- Gestiona las APIs de terceros con transporte simulado más comprobaciones de contrato.
- Aborda velocidad e inestabilidad para que la gente siga ejecutando la suite.
Ejemplo de respuesta
Mi regla es simular en el borde de mi proceso y no dentro. Así que la base de datos es real, corriendo en un contenedor con el mismo motor y la misma versión que producción, y las migraciones se aplican al inicio de la ejecución, lo que significa que la propia migración se prueba cada vez. Cada test corre en una transacción que se deshace, o recibe su propio esquema cuando necesita confirmar, así que los tests quedan aislados y pueden correr en paralelo. Simular el repositorio me daría tests en verde que no prueban nada, ya que los bugs que de verdad envío están en consultas, restricciones y fronteras de transacción. Para una API externa hago stub en la capa HTTP con respuestas grabadas, de modo que mi cliente, mi lógica de reintentos y mi parseo se ejecutan de verdad; simplemente no salgo a la red. Como las grabaciones se desvían, también ejecuto una suite pequeña de contrato contra su entorno de pruebas de forma programada, no en cada pull request, para enterarme de un cambio por un job que falla y no por una alerta a las tres de la mañana.
¿Tienes esta entrevista a la vuelta de la esquina? GhostPilot escucha tu llamada en vivo, detecta la pregunta en cuanto la hacen y pone una respuesta estructurada en tu pantalla en tiempo real. Pruébalo en tu próxima entrevista de práctica, o coge un Session Pass de $29, sin suscripción, para la de verdad.
Mira cómo funcionaPreguntas de seguimiento que puedes esperar
- ¿Cómo mantienes rápida la suite una vez que tienes una base de datos real?
- ¿Cómo pruebas un modo de fallo como un timeout de esa API?
- ¿Qué haces con los tests que dependen del tiempo o del orden?
Más preguntas para Desarrollador backend
Tu entrevistador hará su propia versión de esta. Pega la descripción real del puesto en el Question Predictor gratuito y obtén las 20 preguntas que ese puesto tiene más probabilidades de hacerte, con lo que cada una busca en realidad.
Predecir mis preguntas