2015-09-16 48 views
9

我試圖運行我的茉莉花單元測試的服務。我曾經嘲笑了$位置,但得到一個錯誤:如何解決TypeError:spyOn和Return不是函數?

app.factory('testService', function($location) { 
    return { 
    config: function() { 
     var host = $location.absUrl(); 

     var result = ''; 

     if (host.indexOf('localhost') >= 0) { 
     return 'localhost' 
     } 

     if (host.indexOf('myserver') >= 0) { 
     return 'myserver' 
     } 

    } 

    }; 
}); 

我的測試是這樣的:

describe('testing service', function() { 
    var configService, $rootScope, $location; 

    beforeEach(module('myApp')); 
    beforeEach(inject(function (_$location_) { 
     //$rootScope = _$rootScope_; 
     $location = _$location_; 
     //configService=_configService_; 
     spyOn($location, 'absUrl').andReturn('localhost'); 
    })); 

    it('should return something ', function() { 
     inject(function (configService) { 
      //expect($location.absUrl).toHaveBeenCalled(); 
      //expect($rootScope.absUrl()).toBe('localhost'); 

      var result= configService.config($location); 
      expect(result).toBe('localhost'); 
     }); 
    }); 
}); 

這是我收到的錯誤: 類型錯誤:spyOn(...)。和返回不是一個函數?

回答

12

茉莉花2.0改變了一些間諜語法。 jasmine 2.0 docs

請使用:

spyOn($location, 'absUrl').and.returnValue('localhost'); 
相關問題