我有一个模块,其中一些服务加载到构造函数
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中?
答案 0 :(得分:0)
测试NgModule是否提供服务的一种方法是创建一个通过构造函数注入服务的TestComponent,然后使用TestBed.configureTestingModule
创建一个导入模块并声明TestComponent的测试模块。如果您的模块在providers
下指定了OAuthService,那么您应该在TestComponent中接收该服务。
另外需要注意的是:这不是在angular2中声明和使用模块的推荐方法。通常,您将使用@NgModule装饰器来定义模块导入,导出,提供和声明的内容。有关示例,请查看official docs on NgModule。