axios.get.mockResolvedValue()在testfile.test.ts(Vue/Vitest)中被标记为问题

ntjbwcob  于 2023-06-05  发布在  iOS
关注(0)|答案(2)|浏览(402)

我目前正在将vitest集成到我的Vue应用程序中。单元测试成功运行。但是,我得到一个错误消息:* 属性“mockResolvedValue”用于类型“<T = any,R = AxiosResponse<T,any>,D = any>(url:字符串,配置?:AxiosRequestConfig| undefined)=> Promise”unavailable. ts(2339)*'
在测试文件的开头,我有以下内容:

vi.mock('axios', () => {
    return {
        default: {
            get: vi.fn()
        }
    }
});

现在我想在我的test()方法中使用模拟的 axios :

const mockedData = {
    "title": "Testtitle",
    "price": 13.98
}

test('Description', async () => {
    axios.get.mockResolvedValue({
        status: 200,
        data: mockedData
    });

    expect(await callFunctionToTest()).toStrictEqual(mockedData)
})

这就是问题所在。
有谁能告诉我是什么问题吗?

deyfvvtc

deyfvvtc1#

有一个帮助程序vi.mocked()可以解决这个问题。
https://vitest.dev/api/vi.html#vi-mocked
这应该可以修复它:

vi.mocked(axios.get).mockResolvedValue()
uhry853o

uhry853o2#

我不知道如何用*.test.ts文件解决这个问题,但我在使用*.test.js文件时解决了这个问题。

相关问题