我无法为在构造函数中定义了防护的核心模块编写测试。我的测试失败,要求将参数传递给构造函数。如果我将它传递给任何模块(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 }
]
};
}
}
您是否尝试过TypeScript语法的可选参数?
constructor(parentModule?: CoreModule) {
if (parentModule) {
throw new Error(
'CoreModule is already loaded. Import it in the AppModule only');
}
}
希望这可以帮助