Angular 2:模板未在测试中更新

时间:2016-10-07 15:04:04

标签: unit-testing angular angular2-testing

我只是想做这项工作。

it('should have expected <h1> text', async(() => {
  let fixture = TestBed.createComponent(AppComponent);
  fixture.detectChanges();

  const sectionEl = fixture.debugElement.query(By.css("section"));

  spyOn(fixture.debugElement.componentInstance, "runMe");

  sectionEl.nativeElement.click();
  expect(fixture.debugElement.componentInstance.runMe).toHaveBeenCalled();

  expect(sectionEl.nativeElement.textContent).toBe("changed!");

因此,runMe函数未更改该部分的文本,但调用了间谍节目runMe

1 个答案:

答案 0 :(得分:0)

很难说没有看到更完整的例子。但是通过点击东西,它通常涉及异步事件处理。因此,我们需要等待事件处理完成。在测试中,我们如何做到这一点是通过调用AcceptedOn来返回一个promise。我们可以在承诺解决时继续进行测试。

fixture.whenStable