Ich arbeite an Angular2 Angular CLI Projekt und schreibe Jasmine Testfälle für Komponenten, Komponenten meines Projekts abhängig von Dienstleistungen (Sie sind Parameter für Komponentenkonstruktoren). Wenn ich versuche, Tests für Komponenten zu schreiben, bekomme ich Kann nicht alle Parameter für NavBarComponent auflösen: (?,?).Angular2 Jasmine Testfall Kann nicht alle Parameter für NavBarComponent auflösen: (?,?)
Ich habe Dienste verspottet und konnte Tests für Dienste schreiben. Allerdings bekomme ich das oben genannte Problem, wenn es um Komponententests geht.
Es wird großartig sein zu wissen, wie Sie dieses Problem beheben können.
Hier ist mein Code
export class NavBarComponent implements OnInit {
constructor(private sanitizer: DomSanitizer,private service: AppService){
}
}
Spec-Datei
describe('NavBarComponent component ',() => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [FormsModule, HttpModule],
declarations: [NavBarComponent],
providers: [{ provide: Router, useClass: class { navigate = jasmine.createSpy('navigate'); }},
{provide: AppService, useClass: AppService},
{provide: DomSanitizer, useClass: DomSanitizer}],
schemas: [NO_ERRORS_SCHEMA]
});
});
it('check the number of li elements in NavBarComponent component',
async(() => {
TestBed
.compileComponents()
.then(() => {
let fixture = TestBed.createComponent(NavBarComponent);
let userDOMEl = fixture.debugElement.nativeElement;
expect(userDOMEl.querySelectorAll('li').length).toEqual(17);
});
}));
});
fügen Sie Ihren Konstruktor hinzu und testen Sie es ausprobiert. Fügen Sie immer bedeutsamenFul erforderlichen Code hinzu, wenn Sie eine Frage stellen – mayur