describe(“Timer”, function() {
it("reports the time elapsed", function() { var fakeNow = jasmine.createSpy('fake Date.now'), timer = new j$.Timer({now: fakeNow}); fakeNow.and.returnValue(100); timer.start(); fakeNow.and.returnValue(200); expect(timer.elapsed()).toEqual(100); }); describe("when date is stubbed, perhaps by other testing helpers", function() { var origDate = Date; beforeEach(function() { Date = jasmine.createSpy('date spy'); }); afterEach(function() { Date = origDate; }); it("does not throw even though Date was taken away", function() { var timer = new j$.Timer(); expect(timer.start).not.toThrow(); expect(timer.elapsed()).toEqual(jasmine.any(Number)); }); });
});