Pruebas de Navegación con Angular y RouterTestingModule
Clase 35 de 38 • Curso de Unit Testing para MEAN con Jasmine
Resumen
¿Cómo probar un sistema de navegación en Angular?
¡Bienvenido a un viaje de aprendizaje donde pondremos a prueba el sistema de navegación en Angular! Como desarrolladores, realizar pruebas efectivas es fundamental para garantizar que nuestras aplicaciones funcionen sin problemas. Aquí, en este contenido, te guiaremos a través de los pasos esenciales para realizar estas pruebas utilizando Angular. Te prometo que, al final, tendrás la confianza para enfrentar desafíos similares en tus proyectos.
¿Qué es el NavigationService y cómo lo configuramos?
Dentro de la carpeta de servicios, contamos con un recurso esencial llamado NavigationService
. Este servicio se encarga de controlar la navegación en nuestra aplicación mediante el router de Angular. Este es fundamental porque en su interior inyecta el router de Angular y ofrece funcionalidades como NavigateTo
, para movernos entre las rutas.
Para configurar las pruebas:
- Dependencias Importantes:
- Necesitamos incluir
RouterTestingModule
, una herramienta poderosa para trabajar con el router durante el proceso de testing.
- Necesitamos incluir
- Configurar el Testbed:
- Se requiere una variable que almacene el
NavigationService
. - En el bloque
BeforeEach
, configura el Testbed para asegurarse de inyectar el servicio.
- Se requiere una variable que almacene el
Un ejemplo de cómo codificar estos pasos es:
import { TestBed } from '@angular/core/testing';
import { RouterTestingModule } from '@angular/router/testing';
import { NavigationService } from './navigation.service';
beforeEach(() => {
TestBed.configureTestingModule({
imports: [RouterTestingModule],
providers: [NavigationService]
});
});
¿Cómo aseguramos la cobertura con el 100% de pruebas?
Realizar pruebas es vital, y queremos que nuestro código logre una cobertura completa. Te enseñaré cómo lograrlo probando métodos clave del NavigationService
.
- Probar Navegaciones Específicas:
- Métodos como
GoToPins
yGoToEditMode
son objetivos cruciales para el testing.
- Métodos como
- Uso de Spies:
- Implementamos "spies" para observar y validar que las funciones se llaman correctamente.
- Validamos que el método
Navigate
del router reciba los argumentos correctos.
Un ejemplo de prueba puede ser:
it('should navigate to AppPins', () => {
const navigateSpy = spyOn(TestBed.inject(Router), 'navigate');
navigationService.GoToPins();
expect(navigateSpy).toHaveBeenCalledWith(['AppPins']);
});
- Verificación de Resultados:
- Con cada ejecución de pruebas, verificamos en la consola que el número de tests aprobados aumenta.
- Buscamos obtener el mensaje de éxito que indica una cobertura del 100%.
¿Qué pasos seguir después de asegurar el sistema de navegación?
Con un sistema de navegación sólidamente probado, ¡estás listo para seguir avanzando! A continuación, nos espera el desafío de probar las peticiones HTTP de nuestros servicios, lo cual es esencial para una aplicación Angular robusta. Usaremos métodos similares y el poderoso módulo de testing de Angular para asegurar que nuestras aplicaciones no solo navegan sin problemas, sino que también interactúan correctamente con servidores de datos.
¡Adelante, sigue aprendiendo y pon en práctica todo lo que has adquirido hasta ahora! Con cada prueba, te acercas a convertirte en un experto en Angular. Confiamos en que ya estás en el camino correcto para dominar este campo.