我尝试使用一个虚拟模块并对其进行桩测试,但是它没有起作用。
app.js
function foo()
{
return run_func()
}
function run_func()
{
return '1'
}
exports._test = {foo: foo, run_func: run_func}
测试.js
app = require("./app.js")._test
describe('test', function(){
it('test', function(){
var test_stub = sinon.stub(app, 'run_func').callsFake(
function(){
return '0'
})
test_stub.restore()
var res = app.foo()
assert.equal('0', res)
})
})
我尝试了这个建议: sinon stub not replacing function
但是结果还是一样。它没有替换这个函数。
exports
是模块require
默认返回的对象。默认情况下,它是一个空对象,你可以将函数引用分配给它以进行“导出”。这是一个相当不错的教程:https://www.sitepoint.com/understanding-module-exports-exports-node-js/ - sripberger