首页 > 解决方案 > 开玩笑地模拟嵌套函数

问题描述

我想开玩笑地测试calculate(),我不想调用add() 和subtract() 的实际实现。我如何模拟这些实现?这只是一个示例代码,我不确定它是否有效,但我想问的是如何在测试 calculate() 时模拟嵌套函数 add() 和 subtract() 以便在测试 calculate() 时我不要调用加减法的实际实现?

计算器.js

function add(){
    return 1+1;
}

function subtract(){
    return 2-1;
}

function calculate(){
    add();
    subtract();
}

module.exports = { add, subtract, calculate}

编辑:是的,所有这些功能都在同一个模块中。

计算器-test.js

describe('calculator.js', () => {
    it('Testing calculate() without calling add and subtract ', () => {
    const helper = require('calculator');

    helper.add = jest.fn();
    helper.subtract = jest.fn();

    helper.calculate();

    // I don't know....How do I test calculate() ??
})

EDIT2:这不是已标记的重复问题。我已经说过,我面临的问题是同一模块中的功能而不是不同模块中的功能,这些问题已得到回答,并且您将其标记为重复。

标签: javascriptnode.jsexpressjestjs

解决方案


推荐阅读