73. Fondamentaux du Testing : Configuration et TestBed
Les tests sont vitaux pour garantir la qualité et la maintenabilité de l'application. Angular utilise Jasmine (framework de test) et Karma (lanceur de tests).
Types de tests
- Tests unitaires : Se concentrent sur des unités de code isolées (composants, services, pipes).
- Tests d'intégration : Vérifient l'interaction entre les unités (ex : un composant utilisant un service).
- Tests End-to-End (E2E) : Simulent le parcours réel d'un utilisateur dans un navigateur.
L'Angular TestBed
TestBed est l'utilitaire le plus important pour tester les composants et services Angular. Il crée un environnement de module de test reflétant un NgModule.
typescript import { TestBed } from '@angular/core/testing'; import { ComponentFixture } from '@angular/core/testing'; import { AppComponent } from './app.component';
describe('AppComponent', () => {
let fixture: ComponentFixture
beforeEach(async () => { await TestBed.configureTestingModule({ declarations: [AppComponent], providers: [], imports: [] }).compileComponents();
fixture = TestBed.createComponent(AppComponent);
component = fixture.componentInstance;
});
it('devrait créer l'application', () => { expect(component).toBeTruthy(); });
it(devrait avoir le titre 'my-app', () => {
expect(component.title).toEqual('my-app');
});
});
beforeEach s'exécute avant chaque test (it), garantissant un état propre pour chaque cas de test.