使用Enyme / Jest时如何模拟axios.defaults

时间:2019-06-12 14:29:03

标签: javascript jestjs axios enzyme

我有一个包含以下内容的组件...

export class Mine extends Component{
    constructor(props){
        super(props);
        axios.defaults.withCredentials = true;
    }
    ...
}

我正在尝试编写测试,但得到以下提示...

  

TypeError:无法设置未定义的属性'withCredentials'

我在测试课程中尝试了以下内容...

import axios from "axios";
jest.mock("axios"); 
...
// Tried this...
axios.defaults = {}
// And this...
axios.Prototype.defaults = {}

但是似乎没有任何效果。这是我需要嘲笑的二传手吗?

1 个答案:

答案 0 :(得分:2)

您可以尝试以下代码吗?在这里,我们尝试模拟axios,并以默认值作为其属性返回模拟对象:

jest.mock('axios', () => ({
  defaults: { withCredentials: true }
}));