Prueba el comportamiento al nivel en que lo vive un usuario. Las pruebas de componente que renderizan un componente e interactúan a través de texto visible y roles capturan la mayor cantidad de bugs por unidad de esfuerzo; las pruebas unitarias puras encajan con lógica como el formateo y los reducers; un pequeño conjunto de pruebas de punta a punta cubre los recorridos críticos como el registro y el pago. Evita pruebas que afirmen sobre detalles de implementación, porque se rompen en cada refactor sin capturar regresiones reales.
Por qué lo preguntan los entrevistadores
El entrevistador quiere ver criterio sobre coste y valor en vez de un recitado de la pirámide de pruebas. Las pruebas de frontend son célebremente frágiles, así que escuchan cómo evitas acoplarte a la estructura del marcado, cómo manejas las llamadas de red y si tienes opiniones sobre las pruebas de snapshot. También les dice si dejarías una suite en la que la siguiente persona pueda confiar.
Cómo estructurar tu respuesta
- Enuncia el principio: prueba lo que hace el usuario, no cómo está construido.
- Asigna un tipo de prueba a cada clase de código.
- Explica cómo manejas la red y el tiempo.
- Nombra una práctica que evitas y por qué.
Ejemplo de respuesta
Mi regla es que una prueba debe fallar cuando el comportamiento se rompe y sobrevivir a un refactor. Así que la mayoría de mis pruebas renderizan un componente y lo manejan como lo haría un usuario, encontrando elementos por rol y etiqueta en vez de por test ids o nombres de clase, lo que además ejercita la accesibilidad del componente. La lógica pura como un formateador de fechas o un reducer lleva pruebas unitarias normales, porque son baratas y rápidas. Luego una pequeña suite de punta a punta en Playwright sobre los recorridos que cuestan dinero si se rompen: registro, inicio de sesión, pago. Las llamadas de red se interceptan en la frontera con un servidor simulado en vez de simulando la función fetch, así la prueba cubre mi código real de peticiones. Lo que evito son las pruebas de snapshot grandes, porque nadie revisa un diff de doscientas líneas y se aceptan a ciegas, y cualquier cosa que afirme sobre estado interno. La otra cosa que exijo es que las pruebas de punta a punta corran contra un entorno con datos sembrados, ya que los datos compartidos e inestables son lo que hace que los equipos empiecen a ignorar los builds en rojo.
¿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 evitas que las pruebas de punta a punta se vuelvan inestables?
- ¿Cuál es tu enfoque para probar un componente que pide sus propios datos?
- ¿Dónde encajan para ti las pruebas de regresión visual?
Más preguntas para Desarrollador frontend
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