In Angular 2.0.0, bin ich Gerät testen eine Komponente, die Router verwendet. Allerdings bekomme ich die "mitgelieferten Parameter entsprechen keiner Signatur des Anrufziels." Error. In Visual Studio Code in spec.ts ist es der neue Router(), der in rot hervorgehoben istAngular 2 - Unit Testing mit Router
Ich schätze wirklich, wenn jemand mir wissen lassen könnte, was die richtige Syntax wäre? Danke im Voraus. Mein Code wie folgt:
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 Konstruktor
constructor(private componentComm: ComponentComm, private router: Router) {}
Dank, das funktioniert! Ich benutze auch 'router = TestBed.get (Router)' und speichere meinen Router auf eine Variable neben Fixture, anstatt die Komponente auf irgendwas zu übertragen, wie in https://angular.io/guide/testing#testbedget empfohlen –
Vielen Dank beide Sie - es funktioniert wie beschrieben :) – ICantSeeSharp
Danke, das hat mein Problem gelöst: Eigenschaft 'root' von undefined nicht zu lesen, wenn Router verspottet wird. –