gpt4 book ai didi

javascript - Jest - 如何检查一个函数是否被另一个函数调用

转载 作者:行者123 更新时间:2023-12-04 09:35:59 25 4
gpt4 key购买 nike

我正在使用 Jest 来测试一些 Javascript。在一个名为“function.js”的文件中,我有两个函数,如下所示:

函数.js

const firstFunc = () => {
const x = secondFunc()
return x
}

const secondFunc = () => {
return '5'
}

module.exports = {
firstFunc,
secondFunc
}

在我的 Jest 测试文件中我有:

const functions = require('./functions.js')

test('test if secondFunc is called', () => {
const mockFunction = jest.fn()
functions.secondFunc = mockFunction;
functions.firstFunc()
expect(mockFunction).toHaveBeenCalled()
})

我实际上已经尝试过许多类似的变体。我无法让 jest.fn() 正常工作。总的来说,我希望能够看到有关 secondFunc 的信息,例如它被调用了多少次、带有什么参数等,但我必须实际调用 firstFunc。任何人都可以帮助我,因为我似乎无法弄清楚。

最佳答案

您需要进行一些重构。为 secondFunc 保留相同的引用。然后你可以用模拟对象替换它。

functions.js:

const firstFunc = () => {
const x = exports.secondFunc();
return x;
};

const secondFunc = () => {
return '5';
};

exports.firstFunc = firstFunc;
exports.secondFunc = secondFunc;

单元测试结果:

 PASS  stackoverflow/62583841/functions.test.js (12.17s)
✓ test if secondFunc is called (3ms)

Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 13.779s

关于javascript - Jest - 如何检查一个函数是否被另一个函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62583841/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com