Formation Angular moderne : signals, NgRx et tests

Tests Angular, performance et CI/CD en production

Objectif : industrialiser votre application Angular avec des tests robustes, une optimisation avancée des performances, et une pipeline GitLab CI/CD prête…

Réservé aux abonnés

1. Tests Unitaires & Tests d’Intégration

Les tests Angular sont la dernière barrière avant la mise en production. Les tests constituent l’étape finale avant la livraison. Ils permettent de garantir qu’aucune régression ne se glisse dans votre code. Dans Angular, la qualité des tests influence directement la stabilité de l'application en production.

  • Vitest → jusqu’à 90% plus rapide que Jasmine/Karma.
  • TestBed → pour isoler les services et composants.
  • HttpTestingController → indispensable pour mocker les appels API.
  • Cypress → tests E2E réalistes : parcours utilisateur, formulaires, navigation.
  • Mock Providers → éviter les dépendances réelles en test.

Patterns appliqués

Test Pyramid, Arrange → Act → Assert, Mocking & Isolation.

Exemple — Test de service avec mock API

// Setup : TestBed.configureTestingModule({ providers: [provideHttpClient(), provideHttpClientTesting()] })
//         service = TestBed.inject(ProductService); http = TestBed.inject(HttpTestingController);
afterEach(() => http.verify()); // aucune requête inattendue

it('should fetch products (service)', () => {
  const mock = [{ id: 1, name: 'Laptop', price: 1200 }];
  let result: unknown;
  service.getAll().subscribe(res => (result = res));

  const req = http.expectOne('/api/products');
  req.flush(mock); // HttpTestingController est synchrone : pas besoin de fakeAsync/tick

  expect(result).toEqual(mock);
});

La suite de cette leçon est réservée aux abonnés

Les 3 premières leçons de chaque formation sont gratuites. Débloquez la suite pour continuer.