簡體   English   中英

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 下的 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM