开玩笑地模拟 axios 提供自定义对象会导致 axios 未定义

问题描述 投票:0回答:1

这个效果很好:

jest.mock('axios');
axios.post = jest.fn().mockImplementation(() => Promise.resolve({ data: {} }));

但是如果我为我的对象提供模拟的 post 函数,例如:

jest.mock('axios', () => {
  return {
    post: jest.fn(() => Promise.resolve({})),
  };
});

然后 axios 实例变得未定义并且 我的测试提醒我:

类型错误:无法读取未定义的属性(读取“post”)

我真的不明白有什么区别

testing axios jestjs mocking
1个回答
0
投票

改变

import axios from 'axios'

import * as axios from 'axios'

将解决问题

© www.soinside.com 2019 - 2024. All rights reserved.