单元测试私有模块功能

Unit test private module function

我已经将 App 节点与模块中的几个功能结合起来,我想测试这个模块中的所有功能,问题是其中一些是 "private" 因为我没有在模块导出中导出它们命令,我的问题是是否可以测试它们?或者我应该将它们添加到导出对象以测试它们。

我用摩卡。

例如这是我的代码

it('Should update env',
    function (done) {
        var inst = onsr.updatePorts("'[{key:501,key:501}]'", 'key', 10);
        inst.should.equal('[{key:501,key:10}]');
        done();
    })

自从我将 "private" 的更新 updatePorts 放入模块导出后,它就可以正常工作,但我想以某种方式避免它...

不要直接测试私有函数,测试public使用私有函数的。

这将使您了解私有函数中的非分支代码行。为了覆盖剩余的行,您将需要操纵输入,并且在某些情况下需要对依赖项进行存根,以模拟执行这些代码行的情况。