我的测试功能 reverseAdd 调用另一个在同一模块中定义的功能 add 。 我需要测试,如果测试函数调用另一个。
模块
function add(a, b) {
return a + b;
}
function reverseAdd(a, b) {
add(b, a);
}
module.exports = {
add,
reverseAdd
}
测试
const exp = require('./add');
describe('add', () => {
it('should add two numbers', () => {
expect(exp.add(1, 2)).toBe(3);
});
it('should add two numbers', () => {
exp.add = jest.fn();
exp.reverseAdd();
expect(exp.add).toHaveBeenCalledTimes(1);
});
});
结果
Expected mock function to have been called one time, but it was called zero
据我了解,包装函数是另一个函数,在测试函数中未调用。
如何包装/监视功能添加?
答案 0 :(得分:0)
感谢@ltamajs,我发现了solution。
需要将模块重写为
function add(a, b) {
return a + b;
}
function reverseAdd(a, b) {
module.exports.add(b, a); <----- here changes
}
module.exports = {
add,
reverseAdd
}