jmona789 jmona789 -3 years ago 116
AngularJS Question

spyOn gives method does not exist error

I am running a Karma test on an angular app, in the test I have the following:

return inject(function($injector) {
this.Service = {
functionWithPromise: function(postdata){
var deferred = $q.defer();
data: {}
return deferred.promise;


it('should call the functionWithPromise function when the create function is called', function() {
res = {}
spyOn(Service, "functionWithPromise");

when I run the test it gives this error:

functionWithPromise() method does not exist

How can I get the test to recognize the functionWithPromise() function?

Answer Source

Figured it out, I needed to spy on this.Service instead of service, like this:

spyOn(this.Service, "functionWithPromise");
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download