你如何用sinon测试链式函数调用?

时间:2018-04-20 01:57:40

标签: javascript unit-testing typescript sinon

我正在测试的代码是:

obj.getTimeSent().getTime();

其中obj.getTimeSent()返回日期,然后在该日期调用getTime()

要保留此功能,我尝试了这个:

const timeStub = sandbox.stub(Obj, 'getTimeSent').callsFake(() => {
   return 1 //Doesn't matter what it returns
});

sinon documentation表示callsFake()“在调用时使存根调用提供的fakeFunction”但得到错误“TypeError:obj.getTimeSent(...)。getTime不是函数”< / p>

1 个答案:

答案 0 :(得分:0)

一个函数应该返回另一个函数来链:

const getTimeStub = sandbox.stub().returns(...);
const getTimeSentStub = sandbox.stub(obj, 'getTimeSent').returns({ getTime: getTimeStub });