Cómo burlarse de un constructor como new Date ()

Tengo un método que depende denew Date para crear un objeto de fecha y luego lo manipula. Estoy probando que la manipulación funciona como se esperaba, por lo que necesito comparar la fecha de devolución con la fecha esperada. Para hacer eso necesito asegurarme de quenew Date devuelve el mismo valor en la prueba y en el método que se está probando. ¿Cómo puedo hacer eso?

¿Hay alguna manera de burlarse realmente del valor de retorno de una función constructora?

Podría crear un módulo que se pueda requerir con una función que proporcione un objeto de fecha y que se pueda burlar. Pero eso parece una abstracción innecesaria en mi código.

una función de ejemplo para probar ...

module.exports = {
  sameTimeTomorrow: function(){
    var dt = new Date();
        dt.setDate(dt + 1);
    return dt;
  }
};

¿Cómo me burlo del valor de retorno denew Date()?

Respuestas a la pregunta(5)

Su respuesta a la pregunta