Позвольте мне предположить, что в вашем компоненте вы используете (_router: Router).
Таким образом, в вашем тесте будут добавлены эти строки
class MockRouterService {
navigate() { }
}
const mockRouterService = new MockRouterService();
TestBed.configureTestingModule({
imports: [
...,
RouterTestingModule,
],
providers: [
{
provide: Router,
useValue: mockRouterService,
},
],
})
.compileComponents();
Приведенный выше код поможет вам смоделировать службу Router с помощью поддельного класса, содержащего только ту функцию, которую вы хотите протестировать.
тогда ты просто
it('should call navigate', () => {
spyOn(mockRouterService, 'navigate');
component.test(abc);
expect(mockRouterService.navigate).toHaveBeenCalled();
});
или вы можете проверить даже более конкретно, как это
it('should call navigate with correct params', () => {
spyOn(mockRouterService, 'navigate');
this._activatedRoute = 'your route';
component.test({id: 1});
expect(mockRouterService.navigate).toHaveBeenCalledWith([1], {relativeTo: 'your route'});
});