可以使用@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

如果一切正常,单元测试应该通过。

使用vuetest-utils做单元测试覆盖下面代码:import request from utilsrequestexport function upLoadImg data return request url shopcmsfilegetUrl method POST data data

原文地址: http://www.cveoy.top/t/topic/h3Ka 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录