我想测试使用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);
});
在此先感谢您的帮助。