Код: Выделить всё
function myOtherFunction() {
return true;
}
function myFunction() {
return myOtherFunction();
}
exports = {
myOtherFunction: myOtherFunction,
myFunction: myFunction
}
< /code>
index.test.js:
const sinon = require('sinon');
const assert = require('assert');
describe('mystuff', function() {
before{
var myStuff = proxyquire('path/to/mystuff), {
...
}
}
describe('my test', function() {
beforeEach(function() {
sinon.stub(myStuff, 'myOtherFunction');
});
it('should do something...', function() {
myStuff.myOtherFunction.returns(false);
assert.equal(myStuff.myOtherFunction(), false);
assert.equal(myStuff.myFunction(), false);
});
});
});
< /code>
Когда я называю заглушенной функцией «myotherfunction» непосредственно, она возвращает загрязненное значение false, но когда я называю «myfunction», которая называет «myotherfunction», исходная экспортированная функция называется. «мифункция». Я думал, что смогу манипулировать им напрямую: < /p>
myStuff.myOtherFunction = function() { return false; }
Подробнее здесь: https://stackoverflow.com/questions/797 ... e-function