我有一个严重依赖时间的应用程序。为了使测试更容易,我希望能够在特定时间点启动我的节点应用程序。
NODE_FAKE_TIME=true node app.js
我在我的 app.js 中使用了类似的东西
if(process.env.NODE_FAKE_TIME) {
var time = parseInt(moment(moment().format('YYYY-MM-DD 04:00:00')).format('XSSS'));
var clock = sinon.useFakeTimers(time, "Date");
}
但是,除了使用 sinon 的 useFakeTimers 之外,还有更好的方法吗?因为这样做确实会改变时钟时间......但是它会影响其他东西,如 setIntervals 和 setTimeOuts。
我只想要一种干净的方式来指定应用程序眼中的时间,所以在我使用 Date.now 的任何地方,它都会超出我在运行时指定的时间。
谢谢,