0

我正在订阅 ngOnInit 上的路由。

constructor(private route: ActivatedRoute)

ngOnInit() {
  this.route.queryParamMap.subscribe(params => {
     this.mode = 'test';
  })
}

除了我不确定如何测试的路由之外,我能够测试组件中的所有其他方法。我也没有看到此类问题的任何确切答案。

任何人都可以帮助为这篇文章编写单元测试。

4

1 回答 1

0

您必须在您的测试床提供商列表中注入“Router”和“ActivatedRoute”。像下面的东西。

class RouterStub {
  url = '...';
  navigate(urlName: string) {
    return urlName;
  }
}

class MockActivatedRoute {
  queryParams = Observable.from([{}]);
} 

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      providers: [...
        { provide: Router, useClass: RouterStub },
        { provide: ActivatedRoute, useClass: MockActivatedRoute } ..
      ]
    })
于 2019-05-17T05:00:36.463 回答