마이그레이션

RouterTestingModule 마이그레이션

이 스키매틱은 테스트에서 사용하는 RouterTestingModule을 RouterModule로 마이그레이션합니다.

테스트에서 @angular/common/testing의 SpyLocation을 임포트하고 urlChanges 프로퍼티를 사용하면, 스키매틱은 기존 동작을 유지하기 위해 provideLocationMocks()도 추가합니다.

다음 명령어로 스키매틱을 실행하세요.

ng generate @angular/core:router-testing-module-migration

옵션

옵션 설명
path 마이그레이션할 경로입니다(프로젝트 루트 기준 상대 경로). 기본값은 ./입니다. 프로젝트의 일부를 점진적으로 마이그레이션할 때 사용하세요.

예제

라우터 옵션 유지하기

이전:

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'})],
    });
  });
});

이후:

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'})],
    });
  });
});

SpyLocation을 임포트하고 urlChanges를 사용할 때 provideLocationMocks 추가하기

이전:

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();
  });
});

이후:

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();
  });
});