【发布时间】:2018-04-20 01:57:40
【问题描述】:
我正在测试的代码是:
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 is not a function”
【问题讨论】:
-
但 getTime() 仍在被调用 - 这是不可能的,因为它不是存根所做的。这将导致“getTime 不是函数”错误,但不会导致真正的 getTime 被调用。请提供可以复制问题的stackoverflow.com/help/mcve。
-
@estus 你是对的,我错误地认为“getTime 不是函数”错误意味着该函数试图被调用。
标签: javascript unit-testing typescript sinon