间谍使用导出的功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了间谍使用导出的功能相关的知识,希望对你有一定的参考价值。

我有这种情况:

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上进行模拟/存根/模拟,因为它在函数a中被声明为私有函数。模拟/存根/间谍方法需要包装原始函数,并在其上添加间谍/存根/模拟行为。

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

以上是关于间谍使用导出的功能的主要内容,如果未能解决你的问题,请参考以下文章

小程序各种功能代码片段整理---持续更新

为wordpress添加平滑滚动和滚动间谍功能

[搬运] 将 Visual Studio 的代码片段导出到 VS Code

从另一个页面访问时引导滚动间谍

使用 Mockito 时,模拟和间谍有啥区别?

Mockito 无法创建 @Autowired Spring-Data Repository 的间谍