我正在尝试通过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!'})
})
})