[英]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 下的 providers 中通過以下方式提供:
{ provide: 'environment', useValue: environment }
所以我配置了TestBed
如下:
beforeEach(() => {
TestBed.configureTestingModule({
providers: [{ provide: 'environment', useValue: testEnv }, TestService]
});
service = TestBed.get(TestService);
});
我不斷得到:
錯誤:StaticInjectorError(DynamicTestModule)[環境]:StaticInjectorError(平台:核心)[環境]:NullInjectorError:沒有環境提供者!
代碼本身在服務/構建時工作正常,所以我認為錯誤在於我如何配置TestBed
? 我也試過useFactory
無濟於事。
beforeEach(() => {
TestBed.configureTestingModule({
providers: [{ provide: 'environment', useFactory: ()=>testEnv }, TestService]
});
service = TestBed.get(TestService);
});
我認為這只是一個錯字。
它缺少在ENVIROñ換貨第n
constructor(@Inject('enviroment') environment) {
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.