Angular2测试指令,动态添加DOM

时间:2017-04-03 18:23:49

标签: unit-testing angular testing jasmine directive

我有一个属性指令,它在主机元素之后添加隐藏输入,并在单击主机元素时显示它,当输入失去焦点(模糊事件)时它也会隐藏它。它基本上用于编辑某些模型的值,而无需为每个字段创建表单/输入。

代码:Plunker

我遇到1个测试用例的问题:

  • 点击主机元素应清除内联显示样式
  • blur应将显示样式设置为无
it('should display input when clicked and hide on blur', () => {
  i.click();
  fixture.detectChanges();
  expect(input.style.display).not.toBe('none');
  input.blur();
  fixture.detectChanges();
  expect(input.style.display).toBe('none');
});

在本地运行业力时,此测试有时会通过并且有时会失败,它会像.blur()那样具有一些异步行为。我尝试使用fakeAsync并打勾,但没有运气。也许我是以完全错误的方式做到这一点。

0 个答案:

没有答案