使用sinon存储未导出的函数

ago*_*dis 5 javascript testing unit-testing stub sinon

doB为我的模块的功能写了一个单元测试.

我想在doA 导出它的情况下存根函数,我不想改变doB访问方式doA.

我知道它不能简单地stub编辑,因为它不在导出的对象中.

我如何存根doA(sinon或任何其他工具?)

function doA (value) {
   /* do stuff */
}

function doB (value) {
  let resultA = doA(value);
  if (resultA === 'something') {
     /* do some */
  } else {
     /* do otherwise */
  }
}

module.exports = exports = {
   doB
}
Run Code Online (Sandbox Code Playgroud)

ago*_*dis 1

我最终使用了rewire,我可以只使用__get__模块中的内部函数及其stubsinon或 userewire__with__实用程序来调用具有替换内部值的函数