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
Vous devez vous connecter pour publier un commentaire.
Les éléments suivants doivent travailler pour un service sans paramètre, peut-être que cela peut être un point de départ:
(Vous pouvez aussi jeter un oeil ici: Comment puis-je tester un service AngularJS avec Jasmine?)