测试角度coreModule并防止重新导入

时间:2018-09-03 05:59:55

标签: angular jasmine

我无法为在构造函数中定义了防护的核心模块编写测试。我的测试失败,要求将参数传递给构造函数。如果我将其传递给任何模块(AppModule)的引用,它将被视为重新导入。

我只想知道如何测试构造函数中具有以下代码段的模块。

我的 core.module.ts 中的

我有这个-

 export class CoreModule {

  constructor(@Optional() @SkipSelf() parentModule: CoreModule) {
    if (parentModule) {
      throw new Error(
        'CoreModule is already loaded. Import it in the AppModule only');
    }
  }

  static forRoot(): ModuleWithProviders {
    return {
      ngModule: CoreModule,
      providers: [
        { provide: HTTP_INTERCEPTORS, useClass: JwtInterceptorService, multi: true },
        { provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptorService, multi: true }
      ]
    };
  }

}

1 个答案:

答案 0 :(得分:0)

嗨,您是否尝试过将TypeScript语法用于可选参数?

constructor(parentModule?: CoreModule) {
    if (parentModule) {
      throw new Error(
        'CoreModule is already loaded. Import it in the AppModule only');
    }
  }

希望这会有所帮助