如何使用其中包含参数的 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
});
我有一个方法 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
});