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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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