我查看了文档,检查了SO,并尝试了不同的解决方案/解决方法,但似乎无法正常工作。我正在使用业力/茉莉花为angular4应用程序编写单元测试。它会测试使用第三方组件ckeditor(https://www.npmjs.com/package/ng2-ckeditor)的组件。尽管在运行测试时出现此错误...
失败:未捕获(承诺):错误:模板解析错误:'ckeditor'不是已知元素:1.如果'ckeditor'是Angular组件,则验证它是否属于此模块。2.要允许任何元素,请在此组件的“ @ NgModule.schemas”中添加“ NO_ERRORS_SCHEMA”。(“ [错误->]
“):ng:///DynamicTestModule/CkEditorComponent.html@0:0错误:模板解析错误:'ckeditor'不是已知元素:1.如果'ckeditor'是Angular组件,则验证它是否属于Angular组件2.要允许任何元素,在此组件的'@ NgModule.schemas'中添加'NO_ERRORS_SCHEMA'(“ [ERROR->]”):ng:///DynamicTestModule/CkEditorComponent.html@0:0。 ..
我的单元测试文件如下所示
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ManageInvanareLoginComponent } from './manage-invanare-login.component';
import {CreateDriftInfoComponent} from "../create-drift-info/create-drift-info.component";
import {CreateLoginTextComponent} from "../create-login-text/create-login-text.component";
import {MdInputContainer, MdInputModule} from "@angular/material";
import {CKEditorModule} from "ng2-ckeditor";
import {CkEditorComponent} from "../ck-editor/ck-editor.component";
describe('ManageInvanareLoginComponent', () => {
let component: ManageInvanareLoginComponent;
let fixture: ComponentFixture<ManageInvanareLoginComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [
CkEditorComponent,
CreateDriftInfoComponent,
CreateLoginTextComponent,
ManageInvanareLoginComponent,
MdInputContainer
],
providers:[
CKEditorModule,
MdInputModule
]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(ManageInvanareLoginComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
我的app.module.ts文件看起来像这样...
...
import { NO_ERRORS_SCHEMA } from "@angular/core";
import { CKEditorModule } from 'ng2-ckeditor';
@NgModule({ declarations: [
AppComponent,
WelcomeComponent,
DriftInfoDisplayComponent,
LoginInfoComponent,
SideBarComponent,
CkEditorComponent,
ManageInvanareLoginComponent,
CreateDriftInfoComponent,
CreateLoginTextComponent ], exports:[
CkEditorComponent ], imports: [
CKEditorModule,
BrowserModule,
FormsModule,
HttpModule,
AppRoutingModule,
BrowserAnimationsModule,
MdGridListModule,
MdButtonModule,
MdInputModule ], providers: [
PathsService,
DriftInfoDisplayComponent,
DriftInfoService
],
schemas:[NO_ERRORS_SCHEMA],
bootstrap: [AppComponent] })
export class AppModule { }
我不希望测试ckeditor元素,但我确实想测试包含此债权人元素标记的组件中的其他功能。
有没有一种方法可以告诉测试我忽略该标签?
您还应该添加schemas:[NO_ERRORS_SCHEMA]
到测试配置中
TestBed.configureTestingModule({
...
schemas:[NO_ERRORS_SCHEMA],
});
也可以看看
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句