这是我的测试:
describe('Documentation Component', () => {
it('renders a vue instance', (done) => {
expect(shallow(Documentation).isVueInstance()).toBe(true)
done()
})
it('Gets documentation', async (done) => {
let wrapper = shallow(Documentation)
await flushPromises()
expect(wrapper.vm.$data.documentation).toBe('')
done()
})
})
我按照Vue.js文档中的指南操作,但我无法使用它。我需要等待文档的承诺:
mounted () {
// --------------------------------------
this.$http.get(Config.urls.documentation).then(
(response) => {
this.documentation = response.body
},
(errorResponse) => {
EventBridge.$emit('request.error', errorResponse)
this.documentation = ''
}
)
}
问题是,如果我使用“完成”功能会出现此错误,如果没有它,它会给出:
Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called;
我不确定我需要做什么,只是按照文档进行操作。 :(
答案 0 :(得分:1)
使用async
或done
参数,不要同时使用它们。
由于您已拨打done()
,因此应删除async
。所以这一行:
it('Gets documentation', async (done) => {
应该是:
it('Gets documentation', (done) => {
如果您想等待承诺,请使用其他替代方案。移除done
并仅使用async
:
it('Gets documentation', async () => {
let wrapper = shallow(Documentation)
await flushPromises()
expect(wrapper.vm.$data.documentation).toBe('')
})