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