如何使用sinon存根Date()的getTime()方法?

时间:2017-08-16 09:32:44

标签: unit-testing sinon

我正在使用此方法,但它不起作用 -

var date = new Date();    
var getTimeStub = sinon.sandbox.stub(date, 'getTime');

2 个答案:

答案 0 :(得分:0)

直接回答您的问题(假设您仍想使用沙盒):

var sandbox = sinon.createSandbox();
var date = new Date();    
var getTimeStub = sandbox.stub(date, 'getTime');

文档链接:http://sinonjs.org/releases/v4.1.2/sandbox/

或者(这实际上取决于你实际做了什么),你可以使用Sinon的假冒计时器来处理日期和时间。时间短暂。

http://sinonjs.org/releases/v4.1.2/fake-timers/

答案 1 :(得分:0)

我强烈建议您使用假定时器。它更优雅

// up
const sandbox = sinon.sandbox.create()

// 1 Jan 2017, UTC
const fakeNow = 1483228800 * 1000
sandbox.useFakeTimers(fakeNow)

const now = new Date().getTime()

// down