Angular 单元测试 - 如何通过在 TestBed 提供程序中使用 useValue 将依赖项注入 TestBed
Angular Unit Test - How to inject dependencies to TestBed by using useValue in the TestBed provider
我要测试的服务具有以下构造函数:
constructor(@Inject('enviroment') environment) {
this.initConfig(environment);
}
environment
在 app.module 中由提供者提供:
{ provide: 'environment', useValue: environment }
所以我配置了TestBed
如下:
beforeEach(() => {
TestBed.configureTestingModule({
providers: [{ provide: 'environment', useValue: testEnv }, TestService]
});
service = TestBed.get(TestService);
});
我不断得到:
Error: StaticInjectorError(DynamicTestModule)[enviroment]:
StaticInjectorError(Platform: core)[enviroment]:
NullInjectorError: No provider for enviroment!
代码本身在 serving/building 时工作正常,所以我假设错误出在我如何配置 TestBed
?我也试过 useFactory
没用。
beforeEach(() => {
TestBed.configureTestingModule({
providers: [{ provide: 'environment', useFactory: ()=>testEnv }, TestService]
});
service = TestBed.get(TestService);
});
我认为这只是一个打字错误。
在 environment
中缺少 n
constructor(@Inject('enviroment') environment) {
我要测试的服务具有以下构造函数:
constructor(@Inject('enviroment') environment) {
this.initConfig(environment);
}
environment
在 app.module 中由提供者提供:
{ provide: 'environment', useValue: environment }
所以我配置了TestBed
如下:
beforeEach(() => {
TestBed.configureTestingModule({
providers: [{ provide: 'environment', useValue: testEnv }, TestService]
});
service = TestBed.get(TestService);
});
我不断得到:
Error: StaticInjectorError(DynamicTestModule)[enviroment]: StaticInjectorError(Platform: core)[enviroment]: NullInjectorError: No provider for enviroment!
代码本身在 serving/building 时工作正常,所以我假设错误出在我如何配置 TestBed
?我也试过 useFactory
没用。
beforeEach(() => {
TestBed.configureTestingModule({
providers: [{ provide: 'environment', useFactory: ()=>testEnv }, TestService]
});
service = TestBed.get(TestService);
});
我认为这只是一个打字错误。
在 environment
中缺少 nconstructor(@Inject('enviroment') environment) {