Sinon Snub заменить функциюJavascript

Форум по Javascript
Anonymous
Sinon Snub заменить функцию

Сообщение Anonymous »

Можно ли заменить или загрязнять функцию экспорта.

Код: Выделить всё

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

Вернуться в «Javascript»