★★★★★ Junior → Senior 🔥 Fundamental
Pirámide de pruebas y estrategia Una estrategia combina muchas pruebas rápidas, integración enfocada y pocos E2E críticos. La forma exacta depende del producto.
Estado No leído En progreso Repasado Dominado 10–15 min
🟢 Base 🟡 Entrevista 🔴 Senior
Qué debes entender Una estrategia combina muchas pruebas rápidas, integración enfocada y pocos E2E críticos. La forma exacta depende del producto.
Cómo funciona El costo de ejecución y mantenimiento crece al incluir más sistemas. La confianza crece cuando se prueban contratos y flujos reales.
Ejemplo unit → integration → e2eMostrar respuesta Resultado Cobertura equilibrada
Mostrar explicación
Qué está pasando No se trata de porcentajes rígidos, sino de ubicar cada riesgo en el nivel más barato que dé confianza.
Pregunta típica ¿Qué probarías en E2E?
Respuesta Senior Flujos de negocio críticos y puntos de integración que no pueden validarse con menor costo, evitando duplicar todos los casos unitarios.
Repasar risk confidence test cost
★★★★★ Mid 🔥 Muy preguntado
React Testing Library y queries RTL favorece pruebas parecidas al uso real. getByRole con nombre accesible suele ser la primera opción.
Estado No leído En progreso Repasado Dominado 10–15 min
🟢 Base 🟡 Entrevista 🔴 Senior
Qué debes entender RTL favorece pruebas parecidas al uso real. getByRole con nombre accesible suele ser la primera opción.
Cómo funciona Queries accesibles detectan problemas de semántica. findBy espera asincronía; queryBy comprueba ausencia.
Ejemplo screen.getByRole("button", { name: /guardar/i })Mostrar respuesta Resultado Encuentra el botón como usuario
Mostrar explicación
Qué está pasando El test se apoya en rol y nombre, no en una clase o test id accidental.
Pregunta típica ¿Cuándo usarías data-testid?
Respuesta Senior Como último recurso cuando no existe una consulta semántica razonable, no como selector por defecto.
Repasar accessibility user-event async
★★★★★ Mid → Senior 🔥 Frecuente
Mocks, spies y fakes Un mock controla una dependencia; un spy observa llamadas; un fake implementa una versión simplificada pero funcional.
Estado No leído En progreso Repasado Dominado 10–15 min
🟢 Base 🟡 Entrevista 🔴 Senior
Qué debes entender Un mock controla una dependencia; un spy observa llamadas; un fake implementa una versión simplificada pero funcional.
Cómo funciona Sobre-mockear acopla pruebas a implementación. Es mejor simular límites externos que cada función interna.
Ejemplo vi.spyOn(api, "save").mockResolvedValue({ ok: true });Mostrar respuesta Resultado Controla el límite de red
Mostrar explicación
Qué está pasando La UI puede probarse sin backend real, verificando comportamiento y contrato.
Pregunta típica ¿Qué no mockearías?
Respuesta Senior Lógica interna que forma parte de la unidad bajo prueba. Mockearía red, reloj o APIs difíciles, manteniendo integración entre componentes propios.
Repasar MSW contracts test doubles
★★★★★ Mid 🔥 Uso diario
Pruebas asíncronas y timers Las pruebas deben esperar una condición observable, no dormir un tiempo arbitrario.
Estado No leído En progreso Repasado Dominado 10–15 min
🟢 Base 🟡 Entrevista 🔴 Senior
Qué debes entender Las pruebas deben esperar una condición observable, no dormir un tiempo arbitrario.
Cómo funciona findBy y waitFor reintentan; fake timers controlan reloj, pero pueden interactuar con promesas y user-event.
Ejemplo await screen.findByText(/guardado/i);Mostrar respuesta Resultado Espera hasta que aparece
Mostrar explicación
Qué está pasando La prueba se sincroniza con el resultado visible en vez de usar setTimeout.
Pregunta típica ¿Por qué evitarías waitFor con muchas aserciones?
Respuesta Senior Dificulta diagnóstico y puede reejecutar efectos. Esperaría una condición específica y después haría aserciones normales.
Repasar event loop timers flakiness
★★★★★ Mid → Senior 🔥 Común
Cypress y Playwright E2E valida la aplicación desplegada a través del navegador. Playwright destaca en múltiples contextos/navegadores; Cypress ofrece una experiencia integrada y depuración amigable.
Estado No leído En progreso Repasado Dominado 10–15 min
🟢 Base 🟡 Entrevista 🔴 Senior
Qué debes entender E2E valida la aplicación desplegada a través del navegador. Playwright destaca en múltiples contextos/navegadores; Cypress ofrece una experiencia integrada y depuración amigable.
Cómo funciona Los tests deben controlar datos y aislarse. Esperas por estado son más estables que tiempos fijos.
Ejemplo await page.getByRole("button", { name: "Comprar" }).click();Mostrar respuesta Resultado Ejecuta una interacción real
Mostrar explicación
Qué está pasando El locator semántico espera automáticamente condiciones de acción.
Pregunta típica ¿Cómo reducirías flaky tests?
Respuesta Senior Datos deterministas, aislamiento, locators estables, esperar estados de negocio y eliminar sleeps; además observar traces y retries solo como diagnóstico.
Repasar test data CI tracing