Javascript 间谍在导出函数上使用chai

Javascript 间谍在导出函数上使用chai,javascript,node.js,unit-testing,mocha.js,chai,Javascript,Node.js,Unit Testing,Mocha.js,Chai,我有这样的情况: user.js: var a = function() { function b() { return 5 } } module.exports = a 如何监视函数b() 在我的test.js文件中,我有如下内容: let us = require('../user) chai.spy.on(us, 'b', returns => 3); 但这不起作用。如何使用chai解决此问题?您不能对函数b进行mock/stub/mock,因

我有这样的情况:

user.js:

var a = function() {
    function b() {
        return 5
    }
}

module.exports = a
如何监视函数
b()

在我的test.js文件中,我有如下内容:

let us = require('../user)

chai.spy.on(us, 'b', returns => 3);

但这不起作用。如何使用
chai
解决此问题?

您不能对函数
b
进行mock/stub/mock,因为它在函数
a
中声明为私有函数。mock/stub/spy方法需要包装原始函数并在其上添加spy/stub/mock行为


由于函数
b
是私有的,所以不能将其导入测试文件并模拟/存根/间谍它。这就是为什么它是不可能的。

我认为这是不可能的:只有公开的函数/方法可以被监视。