J'ai du mal à injecter un service dans un autre service dans Angular 4.x et je reçois l'erreur: Error: No provider for SkillsService!
J'ai créé un repo qui reproduit cette erreur . Vous pouvez l'exécuter localement en clonant le dépôt et en exécutant simplement ng test
du répertoire racine du référentiel.
Étapes que j'ai prises ...
ng new
ng g service contact
ng g service skills
ng test
et recevez l'erreur: Error: No provider for SkillsService!
Comment ajouter un fournisseur à ContactService pour le SkillsService?
Il semble que ce doit être quelque chose de très simple, mais il s'avère difficile de travailler à partir de la documentation et de rechercher.
Votre test pour ContactService utilise un module de test qui déclare uniquement ContactService en tant que fournisseur. Mais ContactService a besoin d'un SkillsService. Donc SkillsService doit également faire partie des fournisseurs du module de test:
TestBed.configureTestingModule({
providers: [ContactService, SkillsService]
});
Vous pouvez également utiliser l'ensemble du module d'application dans votre test:
TestBed.configureTestingModule({
imports: [AppModule]
});
Mais je ne recommanderais pas cela parce que vos tests deviendront de plus en plus lents pendant que l'application se développe.