我是Jasmine的新手。
我的服务文件包含一个进行http get方法调用的函数
app.service('myService', ['$http', function($http) {
var incCount = function(total){
return total++;
}
var sampFunction = function(link){
var promise = $http({
method : 'GET',
url : link
}).success(function(data) {
promise = data;
return data;
});
return promise;
}
return {
incCount: incCount,
sampFunction : sampFunction
};
}]);
我的控制器具有在服务中调用sampFunction的功能
var url = ....(some url)
myService.sampFunction(url).then(function(res){
$scope.data = res[0].myData;
}
任何人都可以帮助我,如何在控制器的规范中模拟这项服务的函数调用? 提前谢谢..
答案 0 :(得分:0)
这应该可以解决问题:
describe('myService', function () {
var $httpBackend, myService;
beforeEach(module("your-module-name"));
beforeEach(inject(function (_$httpBackend_, _myService_) {
$httpBackend = _$httpBackend_;
myService = _myService_;
}));
it("can be instantiated", function () {
expect(myService).toBeDefined();
});
it("should fire GET call to link url", function () {
var link = "/some-url";
$httpBackend.expectGET(link).respond({});
myService.sampFunction(link);
$httpBackend.verifyNoOutstandingExpectation();
});
});