Art*_*dan 6 unit-testing jasmine angular
这个单元测试
it('should invoke copy method', fakeAsync(() => {
spyOn(testClipboardService, 'copy');
linkEl = fixture.debugElement.query(By.css('.mat-raised-button')).nativeElement;
linkEl.click();
expect(testClipboardService.copy).toHaveBeenCalled();
}));
Run Code Online (Sandbox Code Playgroud)
它成功通过但在控制台中我有一个错误,这引起了这一行:
linkEl.click();
Run Code Online (Sandbox Code Playgroud)
我不明白为什么
'ERROR',TypeError {ngDebugContext:DebugContext_ {view:Object {def:...,parent:...,viewContainerParent:...,parentNodeDef:...,context:...,component:..., nodes:...,state:...,root:...,renderer:...,oldValues:...,disposables:...,initIndex:...},nodeIndex:0,nodeDef:Object {nodeIndex:...,parent:...,renderParent:...,bindingIndex:...,outputIndex:...,checkIndex:...,flags:...,childFlags:...,directChildFlags :等等
提前致谢
就我而言,在配置测试床时,我可以通过将 NoopAnimationsModule 添加到我的导入中来消除错误。根据我的发现,您在运行测试时可能缺少导入。
例子:
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ MyAwesomeComponent ],
imports: [
NoopAnimationsModule, // I had to add this
FormsModule,
RouterTestingModule
]
})
.compileComponents();
}));
Run Code Online (Sandbox Code Playgroud)