由于 Vue 进行异步更新 DOM的情况,一些依赖 DOM 更新结果的断言必须在Vue.nextTick
回调中进行:
// 在状态更新后检查生成的 HTML it('updates the rendered message when vm.message updates', done => { const vm = new Vue(MyComponent).$mount() vm.message = 'foo' // 在状态改变后和断言 DOM 更新前等待一刻 Vue.nextTick(() => { expect(vm.$el.textContent).toBe('foo') done() }) })
我们计划做一个通用的测试工具集,让不同策略的渲染输出 (例如忽略子组件的基本渲染) 和断言变得更简单。
关于更深入的 Vue 单元测试的内容,请移步vue-test-utils。