TypeError {Angular测试中的ngDebugContext

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 :等等

提前致谢

Jac*_*ャック 3

就我而言,在配置测试床时,我可以通过将 NoopAnimationsModule 添加到我的导入中来消除错误。根据我的发现,您在运行测试时可能缺少导入。

例子:

beforeEach(async(() => {
    TestBed.configureTestingModule({
      declarations: [ MyAwesomeComponent ],
      imports: [
        NoopAnimationsModule, // I had to add this
        FormsModule,
        RouterTestingModule
      ]
    })
    .compileComponents();
  }));
Run Code Online (Sandbox Code Playgroud)