首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角单元测试--如何在TestBed提供程序中使用useValue向TestBed注入依赖项

角单元测试--如何在TestBed提供程序中使用useValue向TestBed注入依赖项
EN

Stack Overflow用户
提问于 2019-06-10 13:23:44
回答 1查看 608关注 0票数 0

我要测试的服务具有以下构造函数:

代码语言:javascript
复制
constructor(@Inject('enviroment') environment) {
    this.initConfig(environment);
}

提供程序下的environment是在app.module中提供的:

代码语言:javascript
复制
{ provide: 'environment', useValue: environment }

因此,我将TestBed配置为:

代码语言:javascript
复制
beforeEach(() => {
    TestBed.configureTestingModule({
        providers: [{ provide: 'environment', useValue: testEnv }, TestService]
    });
    service = TestBed.get(TestService);
});

我不断地得到:

错误: StaticInjectorError(DynamicTestModule)enviroment: StaticInjectorError(平台:核心)环境: NullInjectorError:没有环境提供者!

代码本身在服务/构建时运行良好,因此我假设错误就在我如何配置TestBed的某个地方?我也尝试过useFactory,但没有结果。

代码语言:javascript
复制
beforeEach(() => {
    TestBed.configureTestingModule({
        providers: [{ provide: 'environment', useFactory: ()=>testEnv }, TestService]
    });
    service = TestBed.get(TestService);
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-10 14:55:48

我想这只是一个错误。

它丢失了环境中的nn

代码语言:javascript
复制
constructor(@Inject('enviroment') environment) {
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56527322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档