【问题标题】:Spy using chai on exported function在导出函数上使用 chai 进行间谍活动
【发布时间】:2019-10-08 10:25:30
【问题描述】:

我有这种情况:

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 解决这个问题?

【问题讨论】:

  • 我认为这是不可能的:只有暴露的函数/方法可能会被监视。

标签: javascript node.js unit-testing mocha.js chai


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-09
    • 2019-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多