routerSpy导航方法未调用

时间:2019-06-27 14:43:14

标签: angular jasmine karma-runner

我要测试以下代码:

@Output() selectedProfile = new EventEmitter<Profile>();

onProfileSelected(profile: profile) {
    if (profile) {
      this.selectedProfile.emit(profile);

      this.router.navigate(
        ['profiles/' + profile.id],
        {relativeTo: this.route}
      );
    }
  }

测试设置为:

escribe('ExportProfileSelectorComponent', () => {
  let component: ExportProfileSelectorComponent;
  let fixture: ComponentFixture<ExportProfileSelectorComponent>;
  let routerSpy;
  let router;

  const profiles: Profile[] = [...mockProfiles];

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      imports: [RouterTestingModule],
      declarations: [MyComponent],
    });
  }));

  beforeEach(() => {
    fixture = TestBed.createComponent(MyComponent);
    component = fixture.componentInstance;
    router = TestBed.get(Router);

    routerSpy = spyOn(router, 'navigate');
    fixture.detectChanges();
  });


    it('should trigger navigate => {
      component.onProfileSelected(profiles[0]);
      expect(routerSpy).toHaveBeenCalled();
    });

我从业力中得到的唯一输出是: 预期的间谍导航已被调用。

所以实际上我不明白为什么不叫间谍。

0 个答案:

没有答案