Ce schematic migre les utilisations de RouterTestingModule dans les tests vers RouterModule.
Quand un test importe SpyLocation depuis @angular/common/testing et utilise la propriété urlChanges, le schematic ajoute aussi provideLocationMocks() pour préserver le comportement d'origine.
Lancez le schematic avec :
ng generate @angular/core:router-testing-module-migration
Options
| Option | Détails |
|---|---|
path |
Le chemin (relatif à la racine du projet) à migrer. Vaut ./ par défaut. Utilisez-le pour migrer progressivement une partie de votre projet. |
Exemples
Préserver les options du router
Avant :
import {RouterTestingModule} from '@angular/router/testing';
import {TestBed} from '@angular/core/testing';
import {SpyLocation} from '@angular/common/testing';
describe('test', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [RouterTestingModule.withRoutes(routes, {initialNavigation: 'enabledBlocking'})],
});
});
});
Après :
import {RouterModule} from '@angular/router';
import {TestBed} from '@angular/core/testing';
import {SpyLocation} from '@angular/common/testing';
describe('test', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [RouterModule.forRoot(routes, {initialNavigation: 'enabledBlocking'})],
});
});
});
Ajouter provideLocationMocks quand SpyLocation est importé et que urlChanges est utilisé
Avant :
import {RouterTestingModule} from '@angular/router/testing';
import {TestBed} from '@angular/core/testing';
import {SpyLocation} from '@angular/common/testing';
describe('test', () => {
let spy: SpyLocation;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [RouterTestingModule],
});
spy = TestBed.inject(SpyLocation);
});
it('Awesome test', () => {
expect(spy.urlChanges).toBeDefined();
});
});
Après :
import {RouterModule} from '@angular/router';
import {TestBed} from '@angular/core/testing';
import {SpyLocation, provideLocationMocks} from '@angular/common/testing';
describe('test', () => {
let spy: SpyLocation;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [RouterModule],
providers: [provideLocationMocks()],
});
spy = TestBed.inject(SpyLocation);
});
it('Awesome test', () => {
expect(spy.urlChanges).toBeDefined();
});
});