首页 文章

如何在Angular2 Jasmine测试中对是否加载测试进行单元测试

提问于
浏览
0

我有一个模块,其中一些服务加载到构造函数

export class AppModule {
    constructor(
                private oauth: OAuthService, //HOW TO TEST THIS WHETHER ITS LOADED OR NOT?
                private translate: TranslateService
    ){

        let browserLang = navigator.language;
        
        if(browserLang.length == 2) {
            browserLang = browserLang == 'en' ? 'en-US' : browserLang;
            browserLang = browserLang == 'de' ? 'de-AT' : browserLang;
        }
        translate.use(browserLang || 'en-US');
    }
}

我如何进行单元测试以检查是否使用Angular2 Jasmine将OAuthService和TranslateService的实例加载到AppModule中?

1 回答

  • 0

    测试NgModule是否提供服务的一种方法是创建一个TestComponent,它通过构造函数注入您的服务,然后使用 TestBed.configureTestingModule 创建一个导入模块并声明TestComponent的测试模块 . 如果您的模块在 providers 下指定了OAuthService,那么您应该在TestComponent中接收该服务 .

    另外需要注意的是:这不是在angular2中声明和使用模块的推荐方法 . 通常,您将使用@NgModule装饰器来定义模块导入,导出,提供和声明的内容 . 有关示例,请查看official docs on NgModule .

相关问题