vue.js - 如何使用 Vue + Jest 模拟 axios 帖子
问题描述
我正在尝试通过 Jest 在 Vue 中测试一个方法,我必须在这个方法中测试一个 Axios 请求。
我已经搜索了几个解决方案,但我没有找到一个与我的场景匹配的解决方案,我无法测试这个请求,即使我使用了 moxios 和其他 npm 包
// config.vue
methods: {
async config () {
await axios.post('/users/config')
.then(res => {
if (res.data.success) {
M.toast({html: res.data.message, classes: 'green'})
this.$router.push('/tour')
}
})
.catch(() => {
M.toast({html: 'Não foi possível contactar, ou você não possui permissão!', classes: 'red'})
})
}
}
```js
// config.spec.js
import { mount, createLocalVue } from '@vue/test-utils'
import config from '@/components/config'
import axios from '@/axios-auth'
jest.mock('axios')
const localVue = createLocalVue()
describe('config', () => {
const spy = jest.fn()
it('mocking axios request', () => {
const wrapper = mount(config, {
localVue
})
wrapper.vm.config()
expect(spy).toHaveBeenCalledWith('/users/config', 'post', {success: true, message: 'Configuração realizada!'})
})
})
解决方案
推荐阅读
- javascript - 如何正确链接承诺?
- material-design-lite - mdl-js-ripple-effect 不适用于 iPad IOS safari 13.1(beta)
- html - 为什么当初始状态使用“显示:无”时,使用动画属性设置不透明度动画?
- c++ - 在函数返回类型之前“定义”
- angular - 在服务中组合来自两个来源的数据的好方法是什么?
- python - Python冒号不是数字序列?
- regex - 使用正则表达式在引号内查找字符串
- kubernetes - 如何跨多个 Kubernetes 集群设置一个 Redis 集群
- vb.net - 如何从数据表中选择所有记录仅以一列不同
- javascript - 根据不同数组的 array.sort() 对一个数组进行排序