我正在基于路由器事件创建一些面包屑。 我已经创建了一个带有NavigationEnd和模拟路由器的路由器测试台,但是无法正常工作。不了解如何在订阅中调用我的方法以及如何编写测试用例以调用这些方法
ngOnInit() {
this.router.events.pipe(filter(e instance of NavigationEnd)).subscribe( event => {
// calling this method
this.callmethod();
// Initiating my breadcrumb method by passing the event
this.initiateBreadcrumb(event);
});
答案 0 :(得分:0)
您可以这样做:
it('routing should call callmethod', () => {
let callMethodSpy = spyOn(component, "callmethod").and.callThrough();
component.ngOnInit();
let event = new NavigationEnd(42, '/some-route', '/');
TestBed.get(Router).events.next(event);
expect(callMethodSpy).toHaveBeenCalled();
});
请不要忘记将RouterTestingModule
导入您的TestBed
。
TestBed.configureTestingModule({
imports: [
RouterTestingModule,
...
]
});