vue+jest 模拟异步
1: 首先我自己找了很多网址看了,都没生效,官网也看了,好像还是不行
2: 我的问题是如何模拟异步
3: 项目使用vue-cli3 搭建,自带test模块
req.js 封装了axios,在发送之前做了一些参数处理
export default function req () {
// ...
axios.post()
}
table.vue 调用fetch方法,获取异步数据
<template>...</template>
<script>
import req from '@/utils/req'
export default {
methods: {
fetch () {
// ...一些操作
req(data).then(() => {
// ...一些操作
})
}
}
}
</script>
补充测试代码
jest.mock('@/utils/req')
// 省略wrapper = mount(vue)
it('## fetch data success', (done) => {
wrapper.vm.fetch()
wrapper.vm.$nextTick(() => {
expect(wrapper.vm.cloneConfig).toEqual(mockData)
done()
})
})
在table.vue的fetch函数打印req,好像没有mock到
报了这个错误, =3=不懂啊,我用的是element的table组件,在我的fetch函数中req获取数据然后绑定上去
我怎么用jest测试这个fetch函数是否正确执行,而且req能返回数据
或者说我怎么用jest模拟req函数,让他不是真正地发出网络请求,而是返回我设定的模拟数据
或者有大佬能给出类似的例子,我做参考
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
亲,你这个问题解决了吗?我也遇到了同样的问题。。。
今天也遇到这个问题了虽然该帖子提的比较久了,我还是来回答下就当记录吧,经过尝试有两种方式可以实现:
第一种方式
第二种方式
详见 这篇帖子下的高赞回答
那你需要mock axios才行