小编ala*_*aza的帖子

我如何使用 vitest 对 axios.create 模拟进行单元测试?

我正在使用 typescript 在 vue 中学习单元测试,我想测试这个功能

\n
const getCLients =async (): Promise<Client[]> => {\n        const {data} = await clientsApi.get('/clients')\n        return data\n}\n
Run Code Online (Sandbox Code Playgroud)\n

但由于clientsApi,我遇到了错误。我的客户端 api 是 aun axios 实例,如下所示:

\n
import axios from 'axios'\n\nconst clientsApi = axios.create({\n   baseURL:import.meta.env.VITE_API_URL\n})\nexport default clientsApi\n
Run Code Online (Sandbox Code Playgroud)\n

我的错误是这样的:

\n
\n

类型错误:无法读取未定义的属性(读取“get”)\n\xe2\x9d\xaf getCLients ../src/clients/composables/useClients.ts:14:41

\n
\n
\n

14| const {data} = 等待clientsApi.get('/clients')

\n
\n

在我的测试中,我完成了 axios 模拟:

\n
vi.mock('axios')\nconst mockedAxios = axios as jest.Mocked<typeof axios>;\n\nmockedAxios.get.mockResolvedValue({\n            data: mockClients,\n})\n
Run Code Online (Sandbox Code Playgroud)\n

我以为我必须模拟 axios.create 但我尝试了很多方法,但我总是遇到相同的打字错误。我需要你的帮助,你该如何解决这个问题?

\n

typescript axios axios-mock-adapter vuejs3 vitest

5
推荐指数
1
解决办法
3259
查看次数

标签 统计

axios ×1

axios-mock-adapter ×1

typescript ×1

vitest ×1

vuejs3 ×1