Я новичок в модульном тестировании в jasmine и karma для angular, здесь я пытаюсь протестировать навигацию маршрутизатора, здесь у нас есть служба, на которую отправляются некоторые данные, и внутри блока подписки я перехожу по ссылке ,
Для этого как написать модульный тест.
КОД ДЛЯ ФУНКЦИИ ВНУТРИ TS-ФАЙЛА.
onAction(action) {
if (action == true) {
this.data.action = action;
this.data.loggedInId = this.id;
this.Formservice.formMethod(this.data).subscribe(() => {
this.router.navigate([`/${this.breadCrum}`]);
});
}
}
КОД ДЛЯ SPE C .TS ФАЙЛА
it("Check the router navigate after onAction",fakeAsync(()=> {
component.onAction(true)
flushMicrotasks()
tick(10)
fixture.detectChanges()
tick(10)
expect (mockRouter.navigate).toHaveBeenCalledWith ('/action-taken');
}));
ШАГИ, КОТОРЫЕ Я СОЗДАЛ ДЛЯ СОЗДАНИЯ СЛУЖБЫ МАРШРУТИЗАТОРА MOCK
import { Routes, RouterModule, ActivatedRoute, Router } from '@angular/router';
let mockRouter = {
navigate: jasmine.createSpy('navigate')
}
providers:[
{ provide: Router, useValue: mockRouter}
]
Вот я получаю сообщение об ошибке Невозможно прочитать свойство 'подписка' неопределенного