Trong Angular 2.0.0, tôi kiểm tra đơn vị một thành phần sử dụng Bộ định tuyến. Tuy nhiên tôi nhận được 'Thông số được cung cấp không khớp với bất kỳ chữ ký nào của mục tiêu cuộc gọi.' lỗi. Trong Visual studio code trong spec.ts nó là mới Router() được đánh dấu màu đỏGóc 2 - Kiểm tra đơn vị với Bộ định tuyến
Tôi thực sự đánh giá cao nếu ai đó có thể cho tôi biết cú pháp chính xác sẽ là gì? Cảm ơn trước. Mã của tôi như sau:
spec.ts
import { TestBed, async } from '@angular/core/testing';
import { NavToolComponent } from './nav-tool.component';
import { ComponentComm } from '../../shared/component-comm.service';
import { Router } from '@angular/router';
describe('Component: NavTool',() => {
it('should create an instance',() => {
let component = new NavToolComponent(new ComponentComm(), new Router());
expect(component).toBeTruthy();
});
});
Component constructor
constructor(private componentComm: ComponentComm, private router: Router) {}
Cảm ơn, làm việc này! Tôi cũng sử dụng 'router = TestBed.get (Router)' và lưu bộ định tuyến của tôi vào một biến cùng với lịch thi đấu, thay vì truyền thành phần cho bất kỳ phần nào, như được đề xuất trong https://angular.io/guide/testing#testbedget –
Cảm ơn cả hai bạn - nó hoạt động như mô tả :) – ICantSeeSharp
Cảm ơn, điều này giải quyết vấn đề của tôi: không thể đọc thuộc tính 'root' của undefined khi mocking router. –