Test d'un service AngularJS simple en utilisant Jasmine

J'ai un service simple que je suis en train de test de l'unité. Peu importe ce que j'essaie, que ce soit la searchService est un inconnu fournisseur ou le service est null (qui curieusement ne sera pas la cause de mon test à l'échec!!).

Quelqu'un a une idée sur ce que je fais de mal??

angular.module('app').service('searchService', function( $q, _ ) { //_ is lodash

  var cache = [
    {
      id: "current",
      name: "Current",
      description: "Search current data"
    },
    {
      id: "historical",
      name: "Historical",
      description: "Search historical data"
    }
  ];

  this.getSearchOptions = function() {
    var deferred = $q.defer();
    deferred.resolve( angular.copy( cache ) );
    return( deferred.promise );
  };

  this.getSearchOptionsByID = function( id ) {
    var deferred = $q.defer();
    var searchOption = _.findWithProperty( cache, "id", id );

    if ( searchOption ) {
      deferred.resolve( angular.copy( searchOption ) );
    } else {
      deferred.reject();
    }
    return( deferred.promise );
   };
  }
);

Je suis en train de créer un test unitaire qui se charge dans la searchService afin que je puisse vérifier les valeurs mises en cache:

describe("Unit: Testing Services", function() {
  describe("Search Service:", function() {
    var service = null;

    beforeEach(function() {
      angular.module('app').service('_');
    });
    //I've also tried the commented out code below
    //beforeEach(inject(function(searchService) {
    //this.service = searchService;
    //}));
    //it('should contain an searchService', invoke(function(service) {

    it('should contain an searchService', function(searchService) {
      expect(searchService).not.to.equal(null);
    });

    it('should contain two search options', function(searchService) {
      expect(searchService.getSearchOptions()).to.equal(2);
    });
  });
});

source d'informationauteur nathasm