使用vuetest-utils做单元测试覆盖下面代码:import request from utilsrequestexport function upLoadImg data return request url shopcmsfilegetUrl method POST data data
可以使用@vue/test-utils来模拟请求和测试upLoadImg函数。
首先,需要安装@vue/test-utils和axios-mock-adapter库:
npm install @vue/test-utils axios-mock-adapter --save-dev
然后,可以创建一个单元测试文件,比如uploadImg.spec.js:
import { mount } from '@vue/test-utils'
import { upLoadImg } from '@/api'
import axios from 'axios'
import MockAdapter from 'axios-mock-adapter'
describe('upLoadImg', () => {
let mock
beforeEach(() => {
mock = new MockAdapter(axios)
})
afterEach(() => {
mock.reset()
})
it('should make a POST request to "/shopcms/file/getUrl"', async () => {
const data = { image: 'image data' }
// Mock the response
mock.onPost('/shopcms/file/getUrl', data).reply(200, { url: 'http://example.com/image.jpg' })
// Call the function
const response = await upLoadImg(data)
// Check the request
expect(mock.history.post.length).toBe(1)
expect(mock.history.post[0].url).toBe('/shopcms/file/getUrl')
expect(mock.history.post[0].data).toBe(JSON.stringify(data))
// Check the response
expect(response).toEqual({ url: 'http://example.com/image.jpg' })
})
})
在这个测试中,我们使用axios-mock-adapter来模拟axios请求,并且使用MockAdapter来断言请求的URL、数据和返回值是否正确。
然后,我们使用mount函数来挂载组件,然后调用upLoadImg函数,并断言请求和返回值是否符合预期。
最后,运行单元测试:
npm run test:unit
如果一切正常,单元测试应该通过。
原文地址: http://www.cveoy.top/t/topic/h3Ka 著作权归作者所有。请勿转载和采集!