I have a service that are using promises. Here is a simplified example of my service:
angular.module('myService').service('popup', [
'$q', function(
$q ) {
this.alert = function(myValue) {
var deferred = $q.defer();
if (myValue = 0) {
deferred.resolve('myValue is null');
} else {
deferred.reject('myValue isn\'t null');
}
return deferred.promise;
}
}]);
I would like a unit test like:
- Given: myValue = 0
- When: myService.alert()
- Then: deferred.resolve has been called
The problem is, I understand since 'deferred' is a var inside my service, I can't access it in my unit tests (to mock it). So I need to mock $q, and I don't have any idea how to do that (I've tried some ways without success).
Anyone know how I can mock $q or know if deferred.resolve() has been called?
Aucun commentaire:
Enregistrer un commentaire