Что эквивалентно spyOn.and.callFake в Sinon? - PullRequest
0 голосов
/ 07 июня 2018

Как мне написать шпиона, который вызывает фальшивку в Синоне, похожую на Жасмин?

Жасмин:

spyOn(window, "requestAnimationFrame").and.callFake(() => {});

Синон:

// pseudo code
const requestAnimationFrameSpy = spy().and.callFake(() => {}); 
global.window.requestAnimationFrame = requestAnimationFrameSpy;

1 Ответ

0 голосов
/ 07 июня 2018

Вы можете сделать это несколькими различными способами, либо с помощью sinon fakes , аналогично:

const requestAnimationFrameSpy = sinon.fake().returns({value:'some value'}); 
global.window.requestAnimationFrame = requestAnimationFrameSpy();

Вы также можете сделать это с sinon stubs :

//from sinon website
var myObj = {};
myObj.prop = function propFn() {
    return 'foo';
};

sinon.stub(myObj, 'prop').callsFake(function fakeFn() {
    return 'bar';
});

myObj.prop(); // 'bar'
...