Sinon中JSON模块的存根独立函数

Posted

技术标签:

【中文标题】Sinon中JSON模块的存根独立函数【英文标题】:Stub standalone function from JSON module in Sinon 【发布时间】:2021-11-27 06:51:14 【问题描述】:

code.js


const fun = () => 
  console.log('Some message');


module.exports = fun

文件.js


const fun = require('./code');

const abc = () =>  
  return fun();


module.exports = abc

file.test.js

const code = require('./code');
const abc = require('./abc');
const sinon = require('sinon');

it('Should return Some Message', () => 
  sinon.stub(code,'fun').returns(true);
  abc.abc();
);

在这里,我想对函数 fun 进行存根,但由于我以不同于对象的方式导入它,因此存根不起作用。

我不想将我的导入样式更改为对象,而不是导入选择性键。

有没有办法在Sinon中做stubbing?

【问题讨论】:

【参考方案1】:

你应该在require('./abc')之前调用sinon.stub()

const sinon = require('sinon');
const code = require('./code');
sinon.stub(code,'fun').returns(true);
const abc = require('./abc');

it('Should return Some Message', () => 
    abc.abc();
);

【讨论】:

以上是关于Sinon中JSON模块的存根独立函数的主要内容,如果未能解决你的问题,请参考以下文章

需要帮助在 NodeJS 中使用 Sinon 存根异步 / 等待承诺

用 sinon 存根,用 chai 测试

为什么sinon存根不能替换实际的exports.function

如何使用 sinon 存根 new Date()?

轻松清理 sinon 存根

用 sinon 模拟/存根猫鼬 findById