[英]Can I assign what “now” is using Moment.js?
我正在使用moment.js,我想编写一个测试,说:“如果不传递日期,它将返回now()
”。 问题是,每次运行测试时, now()
都会得到不同的结果。 在其他库中,您可以设置now()
返回以进行测试。 moment.js是否提供了一种方法? 我一直在搜寻,没有找到任何结果说明您是否可以执行此操作。
计时器( https://www.npmjs.com/package/timekeeper )满足了这一确切需求。
它会覆盖日期构造函数(此刻在幕后使用),因此它也将暂时起作用。
您可以执行以下操作:
const timekeeper = require('timekeeper');
const freezeDate = new Date();
timekeeper.freeze(freezeDate);
// in your test
expect(result).to.equal(freezeDate);
您可以在每次测试之前更改时间源(基本上用新的Date.now
覆盖实现),方法是通过官方momentjs
文档执行以下momentjs
。 这将返回自Unix纪元时间(1/1/1970)以来的毫秒数。
moment.now = function () {
return +new Date();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.