0
routerOnActivateメソッドが正しく呼び出されているかどうかを確認する必要がありますが、パラメータを渡す必要がありますが、これを行う方法に関するドキュメントは見つかりません。angular2でのrouterOnActivateのテスト
簡単にするために、この方法は、
routerOnActivate(curr: RouteSegment): void {
this.uniqueId = curr.getParam('uniqueId');
}
を言うと私は私が解決した方法はRouteSegmentを作成し、直接メソッドにそれを渡すことだったので、
it('should work', inject([TestComponentBuilder, MockBackend], (tcb: TestComponentBuilder, mockBackend: MockBackend) => {
tcb.createAsync(TestComponent)
.then((rootTC:any) => {
let componentInstance = rootTC.debugElement.children[0].componentInstance;
spyOn(componentInstance, 'routerOnActivate');
mockBackend.connections.subscribe((connection: any) => {
connection.mockRespond(new Response(new ResponseOptions({
status: 200,
body: JSON.stringify({message:'found'})
})));
});
rootTC.detectChanges();
expect(componentInstance.routerOnActivate).toHaveBeenCalled();
expect(componentInstance.uniqueId).toBe(123);
});
}));