ich die Winkel-cli bin mit und haben versucht, in die habbit zu bekommen meine Dienste zu testen, aber ich kann den Dienst nicht in den Test scheinen hier zu injizieren meine Situation ist:Angular-cli - Test Service
Angular2 Dienst
@Injectable()
export class AppService{
}
Karma Test - V1.3.0
Ist dies die richtige Syntax? Es scheint, dass es sich während der ersten Veröffentlichung von angular2 geändert hat.
describe('Tests',() => {
beforeEach(() => [
{provide: AppService, useClass: AppService}
]);
it('should create an instance', inject([AppService], (service: AppService) => {
expect(service).toBeTruthy();
}));
});
Ist dies die richtige Syntax? Es scheint, dass es sich während der ersten Veröffentlichung von angular2 geändert hat.
Testfehler
Tests should create an instance FAILED
Error: No provider for AppService!
Meine Konfiguration
angular-cli: 1.0.0-beta.21
node: 6.5.0
os: win32 x64
Danke für die Hilfe, habe es funktioniert! Schön, ich habe vergessen, wie detailliert die angular2 Dokumentation jetzt ist. Es scheint nur mit 'useValue:' zu funktionieren, aber irgendwelche Ideen, warum das funktioniert? –
Huh? Meinst du wenn du 'new AppService()' machst? Wenn ja, was ich mit diesem Teil meine, ist, dass Sie einfach die gesamte TestBed-Konfiguration vergessen und nur eine neue Instanz für die Tests erstellen. Sonst funktioniert der erste Code wie er ist, obwohl er auch auf Provider vereinfacht werden könnte: [AppService] ' –
Und yes' useValue' ist, wenn Sie Ihre eigene erstellte Instanz verwenden wollen. 'useClass' ist nur, wenn Sie möchten, dass Angular es erstellt –