jasmine: la richiamata asincrona non è stata invocata entro il timeout specificato da jasmine.DEFAULT_TIMEOUT_INTERVAL

Ho un servizio angular chiamato requestNotificationChannel :

 app.factory("requestNotificationChannel", function($rootScope) { var _DELETE_MESSAGE_ = "_DELETE_MESSAGE_"; function deleteMessage(id, index) { $rootScope.$broadcast(_DELETE_MESSAGE_, { id: id, index: index }); }; return { deleteMessage: deleteMessage }; }); 

Sto provando a testare questo servizio usando il jasmine:

 "use strict"; describe("Request Notification Channel", function() { var requestNotificationChannel, rootScope, scope; beforeEach(function(_requestNotificationChannel_) { module("messageAppModule"); inject(function($injector, _requestNotificationChannel_) { rootScope = $injector.get("$rootScope"); scope = rootScope.$new(); requestNotificationChannel = _requestNotificationChannel_; }) spyOn(rootScope, '$broadcast'); }); it("should broadcast delete message notification", function(done) { requestNotificationChannel.deleteMessage(1, 4); expect(rootScope.$broadcast).toHaveBeenCalledWith("_DELETE_MESSAGE_", { id: 1, index: 4 }); done(); }); }); 

Ho letto del supporto asincrono in Jasmine, ma dato che sono piuttosto nuovo ai test delle unità con javascript, non sono riuscito a farlo funzionare.

Sto ricevendo un errore:

 Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL 

e il mio test impiega troppo tempo per essere eseguito (circa 5 secondi).

Qualcuno può aiutarmi a fornire un esempio funzionante del mio codice con qualche spiegazione?