模块“DynamicTestModule”导入的意外值“DecoratorFactory” - karma-jasmine

Posted

技术标签:

【中文标题】模块“DynamicTestModule”导入的意外值“DecoratorFactory” - karma-jasmine【英文标题】:Unexpected value 'DecoratorFactory' imported by the module 'DynamicTestModule' - karma-jasmine 【发布时间】:2017-05-07 18:06:22 【问题描述】:

我在创建测试组件实例时遇到错误。

let comp: TaskviewComponent;
let fixture: ComponentFixture;
let deTaskTitle: DebugElement;
let elSub: htmlElement;

describe('TaskviewComponent', () => 

    beforeEach( () => 
        TestBed.configureTestingModule(
            declarations: [
                TaskviewComponent
            ],
            imports: [
                NgModule,
                RouterTestingModule,
                TranslateModule.forRoot(),
            ],
            providers: [
                RestDataService,
                Restangular,
            provide: OAuthService, useClass: OAuthServicMock,
            provide: ComponentFixtureAutoDetect, useValue: true,
            provide: UserInfoService, useClass: UserInfoServiceMock,
            
                provide: LocalStorageService, //provide: LOCAL_STORAGE_SERVICE_CONFIG,
                useValue: 
                    prefix: ApplicationConstants.ANGULAR2_LOCAL_STORAGE_ID,
                    storageType: 'sessionStorage'
                
            ],,

    )
            fixture = TestBed.createComponent(TaskviewComponent);
            comp = fixture.componentInstance;
            deTaskTitle = fixture.debugElement.query((By.css('.Subject')));
            elSub = deTaskTitle.nativeElement;

);

it('should have a subject', () => 
     expect(elSub.textContent).toContain('Client Data Maintenance2 ');
);
);

我收到错误:模块“DynamicTestModule”错误导入的意外值“DecoratorFactory”。我注意到如果我删除“fixture = TestBed.createComponent(TaskviewComponent);”错误将得到解决。但这不会创建测试组件。另外,我注意到,如果我在 import[] 中不包含 NgModule,则无法识别 Ngmodel、datepicker 等元素。

【问题讨论】:

【参考方案1】:

你不能导入“NgModule”,因为它是一个装饰器而不是一个模块。

【讨论】:

如果你在 Angular 和 Emmet 上使用 Bootstrap 4,Emmet 可能已经自动填充了 NgModule 并且你接受了它而不是 NgbModule。如您所见,它们的拼写很接近,因此可能会发生。这就是我所做的,我想我会分享以防其他人有这个问题。

以上是关于模块“DynamicTestModule”导入的意外值“DecoratorFactory” - karma-jasmine的主要内容,如果未能解决你的问题,请参考以下文章

错误:模块“DynamicTestModule”导入了意外的值“CookieService”。请添加@NgModule 注释

模块“DynamicTestModule”导入的意外值“DecoratorFactory” - karma-jasmine

Jasmin + 业力:“错误:模块 'DynamicTestModule' 导入的意外值 'HttpClient'。请添加 @NgModule 注释。”

角度单元测试:失败:模块“DynamicTestModule”导入的意外值“DxTemplateHost”:添加@NgModule 注释

jasmine-karma 中的模块“DynamicTestModule”导入的意外值“未定义”

模块'DynamicTestModule'导入的意外值'DecoratorFactory'。请添加@NgModule注释