Javascript 如何解决类型错误:spyOn andReturn不是一个函数?
我正在尝试运行服务的jasmine单元测试。我模拟了$location,但出现了一个错误:Javascript 如何解决类型错误:spyOn andReturn不是一个函数?,javascript,karma-runner,karma-jasmine,Javascript,Karma Runner,Karma Jasmine,我正在尝试运行服务的jasmine单元测试。我模拟了$location,但出现了一个错误: app.factory('testService', function($location) { return { config: function() { var host = $location.absUrl(); var result = ''; if (host.indexOf('localhost') >= 0) { re
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(…)。andReturn不是函数?jasmine 2.0更改了一些spy语法 请使用:
spyOn($location, 'absUrl').and.returnValue('localhost');