I am having trouble injecting a service into another service in Angular 4.x and receive the error: Error: No provider for SkillsService!
I have created a repo that reproduces this error. You can run this locally by cloning the repo and simply running ng test
from the repo root directory.
Steps i took...
ng new
ng g service contact
ng g service skills
ng test
and receive the error: Error: No provider for SkillsService!
How do I add a provider to ContactService for the SkillsService?
It seems like it must be something very simple, yet it's proving hard to work out from the documentation and searching around.
Your test for ContactService uses a testing module which only declares ContactService as provider. But ContactService needs a SkillsService. So SkillsService must also be part of the providers of the testing module:
TestBed.configureTestingModule({
providers: [ContactService, SkillsService]
});
You could also use the whole application module in your test:
TestBed.configureTestingModule({
imports: [AppModule]
});
But I wouldn't recommend that because your tests will become slower and slower while the application grows.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With