【问题标题】:axios.get.mockResolvedValue() is marked as problem in testfile.test.ts (Vue/Vitest)axios.get.mockResolvedValue() 在 testfile.test.ts (Vue/Vitest) 中被标记为问题
【发布时间】:2022-07-21 19:22:12
【问题描述】:

我目前正在将 vitest 集成到我的 Vue 应用程序中。单元测试成功运行。 但是,我收到一条错误消息: '属性“mockResolvedValue”适用于类型“, D = any>(url: string, config?: AxiosRequestConfig | undefined) => Promise”不可用。 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)
})

这就是问题发生的地方。

谁能告诉我问题出在哪里?

【问题讨论】:

  • 供您参考:看起来问题仅在您使用 .ts 文件时才会出现。我将其更改为 .js,现在效果很好。有谁知道如何使用 .ts 测试文件运行它?
  • 我在尝试在 Vue/Vite 项目中模拟 plyr 库时遇到了类似的问题。当包与打字稿一起使用并且在 Vue 单文件组件中时,模拟似乎在 vitest 中不起作用。那将是我的猜测。我在 vitest 上创建了一个问题,您可能还想在其中添加问题? github.com/vitest-dev/vitest/issues/1484

标签: vue.js axios mocking vitest


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2018-06-18
    • 2022-10-05
    • 1970-01-01
    • 2022-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-31
    • 2016-07-02
    相关资源
    最近更新 更多