Ich arbeite daran, eine meiner Komponenten zum ersten Mal mit Karma/Jasmine usw. zu testen und habe meistens zusammen mit der docs on testing gefolgt. Meine Komponente benötigt 3 Konstruktorargumente.Angular2 Komponententest - Fehler: Kann nicht alle Parameter auflösen
constructor(
private myService: MyService,
private renderer: Renderer,
private element: ElementRef
) { }
I mock versucht haben/Stich jene auf this section of the docs basierend Abhängigkeiten wie folgt;
// Mocks/Stubs
const myServiceStub = {};
class MockElementRef {}
class MockRenderer {}
// beforeEach block
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [ MyComponent ],
providers: [
{ provide: ElementRef, useClass: MockElementRef },
{ provide: Renderer, useClass: MockRenderer },
{ provide: MyService, useValue: myServiceStub},
]
});
fixture = TestBed.createComponent(MyComponent);
});
Trotzdem, wenn ich meine Tests ausführen, bekomme ich den folgenden Fehler;
Error: Can't resolve all parameters for MyComponent: (?, ?, ?).
at SyntaxError.ZoneAwareError (test.ts:9250:33)
at SyntaxError.BaseError [as constructor] (test.ts:44243:16)
at new SyntaxError (test.ts:44453:16)
at CompileMetadataResolver._getDependenciesMetadata (test.ts:61503:31)
Was fehlt mir hier? Vielen Dank!
Sie müssen 'TestBed.compileComponents', die asynchron ist. Siehe Abschnitt zum Testen von Komponenten mit Vorlagen. – jonrsharpe
Es ist nicht das @ jonrsharpe, die Vorlage ist inline nicht in einer separaten Datei –