Contenido del curso

Pruebas de Servicios y Dependencias

Spectator para unit tests en Angular

Resumen

Escribir unit tests en Angular puede volverse tedioso por la cantidad de boilerplate que requiere. Spectator es la librería que reduce ese código repetitivo y hace que las pruebas en Angular sean más legibles y rápidas de escribir, algo clave si trabajas con Jest o Jasmine en proyectos reales.

¿Qué es Spectator y por qué usarlo en Angular?

Spectator es una librería ampliamente usada en la industria para escribir pruebas unitarias en Angular sin tanto código de configuración. Te entrega utilities que simplifican la vida cuando pruebas componentes, directivas o servicios.

Entre lo que aporta destaca:

  • Reduce el boilerplate típico de los tests en Angular.
  • Hace los tests más legibles y mantenibles.
  • Ofrece formas sencillas de probar directivas, servicios y componentes.

¿Qué es Spectator en Angular? Es una librería de testing que reduce el boilerplate al escribir unit tests en Angular y entrega utilidades para probar componentes, directivas y servicios de forma más legible.

¿Cómo se instala Spectator y qué versión debo usar?

La instalación es directa: copias el comando que aparece en la documentación oficial y lo ejecutas en tu proyecto. Con eso ya tienes Spectator disponible para empezar a escribir pruebas.

Ahora, hay un detalle importante con las versiones. Spectator se versiona alineado a Angular, así que si revisas el repositorio en GitHub y entras al changelog de los releases, vas a ver versiones específicas según la versión de Angular que estés usando.

¿Cómo alineo Spectator con mi versión de Angular?

La regla práctica es esta:

  • Si usas Angular 19, busca Spectator 19.
  • Si trabajas con Angular 18 o 14, alinea Spectator a esa versión.
  • Si estás en la última versión de Angular, simplemente instala la última de Spectator.

Mantener esa correspondencia evita incompatibilidades al correr tus pruebas.

¿Spectator funciona con cualquier versión de Angular? Sí, pero debes alinear la versión de Spectator a la de Angular que tengas en el proyecto para evitar problemas de compatibilidad.

¿Spectator soporta Jest, Jasmine y Vitest?

Una de las ventajas grandes de Spectator es su flexibilidad con los test runners. Por defecto trae soporte para Jasmine, que es el framework estándar de pruebas en Angular cuando creas un proyecto nuevo.

También soporta Jest, que es el que vas a usar aquí, y ya están agregando soporte para Vitest, un framework escrito sobre Vite que es más rápido y apunta a convertirse en el reemplazo natural de Jest a futuro. Por ahora, el estándar más extendido sigue siendo Jest.

¿Qué viene después de instalar Spectator?

Con Jest y Spectator listos en el ambiente, ya puedes dejar atrás esa primera prueba simbólica del true igual a true y pasar a pruebas reales. El primer elemento que vas a probar son los pipes en Angular, donde verás cómo encajan estas piezas en un test concreto.

¿Ya tenías experiencia escribiendo tests en Angular sin Spectator? Cuéntame en los comentarios qué tan distinto se siente usar esta librería.