QA The Other WayGarantía de calidad en la era de la automatización con IA. QA The Other Way.
QA práctico

Un fallo esperado sigue ejecutando el test.

Distingue defectos esperados, casos omitidos y éxitos inesperados.

5 min de lecturaQA The Other Way
Fallo esperado, éxito inesperado y caso omitido en filas distintas.
Ilustración editorial propia.
Vídeo ilustrativo de este artículo. Texto en pantalla en inglés; seleccione subtítulos para este idioma.

Edición traducida. Los identificadores técnicos permanecen en su forma original.

Distingue defectos esperados, casos omitidos y éxitos inesperados.
Ejemplo local con datos inventados, no una interfaz de cliente o proveedor.

Un equipo omite un test que falla. El cuerpo deja de ejecutarse; el informe no muestra si el defecto sigue siendo reproducible. Playwright tiene una anotación de fallo esperado: el test corre y un éxito resulta inesperado.

La guía de anotaciones distingue skip(), fail() y fixme(). skip no corre; fail corre y espera fallo. fixme sirve cuando ejecutar es lento o provoca una caída. Elige según significado y límites operativos.

Mantén acotado el ejemplo

Comparamos dos cadenas fijas con diferencia intencionada. No hay defecto real, acción de navegador ni cuenta. Otro ejemplo iguala las cadenas y conserva fail: éxito inesperado y código de salida no cero.

import { test, expect } from '@playwright/test';

test('controlled expected mismatch', async () => {
  test.fail(true, 'Invented mismatch for annotation demonstration');
  expect('actual demo value').toBe('expected demo value');
});

Usa el runner Playwright, no JavaScript corriente. El informe conserva error de aserción y estado esperado. Una salida correcta significa aquí que el fallo coincidió con la expectativa, no que las cadenas fueran iguales.

Revisa el fallo real

La anotación no liga el fallo a una aserción específica. Si falla antes la preparación, el estado puede coincidir sin alcanzar el defecto. Simplifica preparación, lee el error y registra la aserción ejecutada. Errores inesperados de autenticación o entorno no prueban el defecto conocido.

Para un caso real conserva el comportamiento correcto en la aserción, una referencia comprobable y un responsable. No reescribas la aserción para aceptar el defecto. No inventes enlaces: aquí solo hay una descripción.

Limita la anotación condicional a la configuración afectada. Un defecto en un navegador no justifica fail en todos. Revisa condición y estado con las entradas, no los escondas en un helper distante.

Revisa un éxito inesperado

Puede indicar reparación, otro camino o una aserción debilitada. Comprueba antes de quitar la anotación. Tras confirmar el comportamiento correcto, conserva cobertura normal en vez de una excepción permanente.

El runner distingue diferencia esperada ejecutada, igualdad ejecutada con éxito inesperado y cuerpo omitido sin ejecutar. Comprueba mecánica de anotaciones, no preparación para lanzamiento.

Una ejecución insegura o costosa necesita su propia decisión. El fallo esperado no permite acciones destructivas, gastos ni datos de producción. Nombra cobertura omitida y motivo de falta de verificación.

AnyTest describe tests para revisión humana. Revisa excepciones como aserciones y preparación. No se afirma una integración específica de defectos de AnyTest. Cada excepción real necesita responsable y próxima revisión.

Preguntas comunes

¿test.fail omite el cuerpo?

No. Ejecuta el test y espera un fallo.

¿Un fallo esperado demuestra el defecto previsto?

No. Revisa el error real y la aserción alcanzada.

Fuentes