导出函数的对象,而不是将函数附加到module.exports

时间:2018-10-12 13:51:50

标签: node.js sinon

我正在测试一个使用同一文件中另一个函数的函数,基本上这就是我所拥有的:      // fileToTest.js
     const myOtherFunction =()=> {/ *做一些疯狂的事情* /}

const myFunctionToTest = () => {
    /* do something */
    const result = myOtherFunction()
    /* keeps doing things */
}

modules.exports = {
  myFunctionToTest,
  myOtherFunction,
}

问题是,当我测试myFunctionToTest时,我对存根myOtherFunction进行了测试,那么即使运行了正确的存根,也永远不会调用存根,而是调用实函数。

>

当我不直接执行modules.exports = {...}而不是直接导出函数(即exports.myFunctionToTest和exports.myOtherFunction)时,一切正常。

所以我认为用新对象重写modules.exports是一个坏主意(也许也是一个坏习惯吗?)

这如何影响sinon存根?

0 个答案:

没有答案