私は、ルータのイベントにサブスクライブされていると私は、コードの一部を模擬する方法がわからない、単純なコンポーネントをテストしようとしています。エラーは次のとおりです:未定義のプロパティ 'pairwise'を読み取ることができません。角度2で解決ルートをテストするにはどうすればよいですか?
未定義
のプロパティ 'ペアワイズ' を読み取ることができません。これは私のテストで:
describe('AppComponent', function() {
let fixture: ComponentFixture<AppComponent>;
var tendersServiceStub = {};
var scrollServiceStub = {};
var routerStub = {};
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [AppComponent],
providers: [
{provide: TendersService, useValue: tendersServiceStub},
{provide: ScrollService, useValue: scrollServiceStub},
{provide: Router, useValue: routerStub}
],
imports: [RouterTestingModule],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents().then(() => {
fixture = TestBed.createComponent(AppComponent);
fixture.detectChanges()
});
}));
it('should instantiate component',() => {
// console.log(fixture); UNDEFINED
});
});
そして、これはコンポーネントです:
export class AppComponent {
appTitle: string = 'Magic';
constructor(private router: Router, private tendersService: TendersService, private scrollService: ScrollService) {
this.router.events.pairwise().subscribe((e) => {
if ((e[0] instanceof NavigationEnd) && (e[1] instanceof NavigationStart)) {
this.resetSearchCache(e);
}
})
}
private resetSearchCache(e: any) {
if ((e[1].url == '/home') || (e[1].url == '/advancedSearch')) {
if (!e[0].url.includes('/detail')) {
//DO SOMETHING
}
}
}
}
任意のアイデア?
ありがとうございます。
あなたが「スタブした」ルータは空のオブジェクトなので、プロパティイベントとペアワイズは得られません – Chris