我有一个方法,它依赖于 new Date
来创建一个日期对象,然后对其进行操作。我正在测试操作是否按预期工作,因此我需要将返回的日期与预期日期进行比较。为了做到这一点,我需要确保 new Date
在测试和正在测试的方法中返回相同的值。我该怎么做?
有没有一种方法可以实际模拟构造函数的返回值?
我可以创建一个模块,该模块可以与一个提供日期对象并且可以被模拟的函数一起使用。但在我的代码中,这似乎是一个不必要的抽象。
一个需要测试的示例函数。
module.exports = {
sameTimeTomorrow: function(){
var dt = new Date();
dt.setDate(dt + 1);
return dt;
}
};
如何模拟 new Date()
的返回值?