Angular
Tests Unitaires • Module 1

Introduction aux Tests Angular

Comprendre l'écosystème des tests automatisés dans Angular : TestBed, Jasmine, Karma et Vitest.

Simulateur Test Runner (Jasmine / Karma)
CalculateurService > devrait additionner 2 nombres
PASSÉ (4ms)
expect(add(2, 3)).toBe(5)
AppComponent > devrait afficher le titre dans le header
PASSÉ (12ms)
expect(titleElement.textContent).toContain("LearnWeb")
AuthService > devrait refuser un token expiré
PASSÉ (8ms)
expect(auth.isLoggedIn()).toBeFalse()
TestBed

L'utilitaire fondamental d'Angular qui configure un module de test virtuel (semblable à @NgModule) pour injecter des dépendances et instancier des composants.

Jasmine / Vitest

Le framework d'assertion BDD qui fournit la syntaxe describe(), it(), et expect().toBe() ainsi que les espions (spies).

Karma / Web Test Runner

Le lanceur qui exécute les tests dans un navigateur réel ou headless (Chrome headless) et rapporte la couverture de code (coverage).

Anatomie d'un fichier .spec.ts
import { TestBed } from '@angular/core/testing';
import { MonService } from './mon.service';

describe('MonService', () => {
  let service: MonService;

  beforeEach(() => {
    TestBed.configureTestingModule({
      providers: [MonService]
    });
    service = TestBed.inject(MonService);
  });

  it('devrait être créé avec succès', () => {
    expect(service).toBeTruthy();
  });

  it('devrait calculer la somme correctement', () => {
    expect(service.calculerTotal(10, 20)).toBe(30);
  });
});