我怎样做一个axios的单元测试,用vitest创建模拟?

gmol1639  于 2023-03-02  发布在  iOS
关注(0)|答案(1)|浏览(403)

我正在用typescript学习vue中的单元测试,我想测试这个函数

const getCLients =async (): Promise<Client[]> => {
        const {data} = await clientsApi.get('/clients')
        return data
}

但我得到了一个错误,由于clientsApi.我的客户端api是aun axios示例,看起来像这样:

import axios from 'axios'

const clientsApi = axios.create({
   baseURL:import.meta.env.VITE_API_URL
})
export default clientsApi

我的错误是:
类型错误:无法读取未定义的属性(阅读'get')getCLients../src/clients/composables/useClients.ts:14:41
14|常量{数据} =等待客户端Api.get('/客户端')
在我的测试中,我做了axios模拟:

vi.mock('axios')
const mockedAxios = axios as jest.Mocked<typeof axios>;

mockedAxios.get.mockResolvedValue({
            data: mockClients,
})

我想我必须做一个axios的模拟。创建,但我已经尝试了很多方法,但我总是得到相同的打字错误。我需要你的帮助,你怎么能解决这个问题?

rm5edbpk

rm5edbpk1#

不确定我是否走在正确的轨道上,因为它只在我这边起作用。我做vi.mock('axios'),有Error: spyOn could not find an object to spy uponenter code here。所以我做vi.mock(the path to the instance ),做vi.spyOn(the axios instance, 'get').mockResolvedValue,在你的情况下,可能是clientsApi

相关问题