Saltar al contenido
Explorar conocimiento

práctica · intermedio · 2 min de lectura

Snapshot Testing

El snapshot testing compara la salida actual de un componente con una versión guardada previamente, detectando cambios inesperados en la UI o en estructuras de datos.

No requiere conocimientos previos.

Alcance en breve

Cubre

  • Snapshot Testing as a concept

No cubre

  • implementation details

Supone

  • The reader understands relevant fundamentals.

Resumen

Un snapshot test guarda la salida de un componente —HTML renderizado, JSON, estructura de datos— la primera vez que se ejecuta. En ejecuciones posteriores, compara la salida actual con el snapshot guardado. Si difieren, el test falla y el desarrollador decide si el cambio es intencional —actualiza el snapshot— o es un bug.

Popularizado por Jest para componentes React, el snapshot testing es rápido de escribir pero riesgoso si se usa sin criterio: actualizar snapshots sin revisarlos es equivalente a no tener test.

Alcance y supuestos

Cubre snapshot testing, uso con Jest y buenas prácticas. Asume familiaridad con testing.

Modelo mental

Una foto del tablero del auto antes de llevarlo al taller. Al devolverlo, comparás la foto con el estado actual. Si el velocímetro está en una posición distinta, algo pasó.

Uso práctico

  • ✅ Componentes de UI, outputs de APIs, configuraciones.
  • ❌ Snapshots enormes que nadie revisa cuando fallan.

Ejemplo trabajado: snapshot de componente React

test("renderiza botón correctamente", () => {
  const tree = renderer.create(<Button label="Guardar" />).toJSON();
  expect(tree).toMatchSnapshot();
});

Evidencia

  • Jest popularizó los snapshots. Storybook tiene snapshot testing visual con Chromatic y Percy.

Fuentes citadas