Jasmine has a 
  jasmine.clock() helper
  
    Show archive.org snapshot
  
 that you can use to travel through time and trigger setTimeout and setInterval callbacks:
beforeEach(function() {
  timerCallback = jasmine.createSpy("timerCallback");
  jasmine.clock().install();
});
afterEach(function() {
  jasmine.clock().uninstall();
});
it("causes a timeout to be called", function() {
  setTimeout(function() {
    timerCallback();
  }, 100);
  expect(timerCallback).not.toHaveBeenCalled();
  jasmine.clock().tick(101);
  expect(timerCallback).toHaveBeenCalled();
});
If you actually want the test to wait out the timer, your example function needs to accept a done argument, which you then call when the test is expected to finish:
it("causes a timeout to be called", function(done) {
  setTimeout(function() {
    timerCallback();
  }, 100);
  setTimeout(function() {
    expect(timerCallback).toHaveBeenCalled();
    done();
  }, 101);
});
Needless to say the second test is much slower than the first test.
Posted by Henning Koch to makandra dev (2015-04-29 14:04)