在vue-test-utils中处理nextTick()异步调用

时间:2019-03-11 11:00:54

标签: javascript vue.js vue-test-utils

我想测试使用Vue.nextTick()的函数。
像这样:

toggleEdit () {
  this.isEditOn = !this.isEditOn;
  if (this.isEditOn) {
    this.$nextTick(() => {this.$refs.editable.focus();});
  }
}

我写了一个异步测试,等待nextTick的承诺。所有测试都通过了,但是我有一个错误:“ nextTick错误:” TypeError:无法读取未定义的属性“ focus”。 我不知道测试同步时发生了什么,toglegleEdit可以正常工作。

这是示例测试:

it('activate inline edit and change isEditOn state to true', async () => {
  wrapper.vm.toggleEdit();
  await wrapper.vm.$nextTick();
  expect(wrapper.find('input').element).toBe(document.activeElement);
  expect(wrapper.vm.isEditOn).toBe(true);
});

在此先感谢您的帮助。

0 个答案:

没有答案