Skip to content

Instantly share code, notes, and snippets.

@drewlesueur
Created May 17, 2012 22:49
Show Gist options
  • Save drewlesueur/2722118 to your computer and use it in GitHub Desktop.
Save drewlesueur/2722118 to your computer and use it in GitHub Desktop.
Attempt to mock a constructor
var withFakeDate = function (fn) {
var oldDate = Date;
var FakeDate = function () {
var self = new oldDate();
self.fakeDateWasHere = true;
return self;
};
var oldGetFullYear = Date.prototype.getFullYear;
Date.prototype.getFullYear = function () {
return 1996;
}
window.Date = FakeDate;
fn();
window.Date = oldDate;
Date.prototype.getFullYear = oldGetFullYear;
}
var dateTests = function () {
var d = new Date();
console.log("Time:" + d.getTime()); //normal implementation
console.log("Get Full Year:" + d.getFullYear()); //overridden implementation
console.log("Fake added property:" + d.fakeDateWasHere); //happened in fake constructor;
}
withFakeDate(dateTests);
console.log("----");
dateTests();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment