Я пишу модульный тест, чтобы увидеть, вызывается ли ссылка на маршрутизатор с правильными параметрами или нет.
component.html
<tr *ngFor="let record of records;let i = index">
<td>
<button [routerLink]="['/account-details', record['account']]" class="btn">Show Detail</button>
</td>
</tr>
компонент. spec.ts
import { RouterTestingModule } from '@angular/router/testing';
import { Router } from '@angular/router';
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [RouterTestingModule, HttpClientTestingModule],
declarations: [ AccountsListComponent]
})
.compileComponents();
injector = getTestBed();
httpMock = injector.get(HttpTestingController);
injector.get(router);
}));
beforeEach(() => {
fixture = TestBed.createComponent(AccountsListComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should fetch details for particular account on click event', () => {
component.records = [ {"account":""xyz"}];
fixture.detectChanges();
let componentLinks = fixture.debugElement.queryAll(By.css('.btn'));
componentLinks[0].triggerEventHandler('click',null);
fixture.detectChanges();
const spy = spyOn(router, 'navigate');
expect(spy).toHaveBeenCalledWith(['/account-details',"xyz"]);//fails
'Unhandled Promise rejection:', 'Невозможно найти ни одного маршрута. Сегмент URL: 'account-details / xyz' ',';Зона: ',' ProxyZone ',';Задача: ',' Promise.then ',';Значение: ', Ошибка: не может соответствовать ни один маршрут. Сегмент URL: «account-details / xyz» Ошибка: невозможно сопоставить ни один маршрут. Сегмент URL: 'account-details / xyz'