如何使用其中包含参数的 Jest 模拟函数?

How to mock a function using Jest that has parameters in it?

我有一个方法 add 我想模拟它:

A.js

function add(a, b, c) {
  return a + b + c
}

export add;

我在 componentDidMount 中这样调用 add 方法

B.js

import add from './A';

class AddForm extends React.Component {
    ...
    componentDidMount() {
       add(1, 2, 3);
    }
    ...
}

export AddForm;

现在这就是我测试它的方式

B.test.js

import AddForm from './B';

const helpers = require("./A");
jest.spyOn(helpers, "add").mockImplementation(() => 100);

describe('<AddForm/>', () => {
  test('should render all elements', () => {
     return render(
      <AddForm></AddForm>,
     );
  }
}

我在测试时没有得到模拟值 100,而是函数正在执行。我尝试了所有可用的答案,但无法获得此模拟响应。

我在这里遗漏了什么吗?

检查这些文件

样本:

const helpers = require("./A");
jest.mock('./A')
test('should render all elements', () => {
  helper.add.mockReturnValue(100);
  // write your test case
});