使用Jasmine模拟控制器内的服务函数
我不认识茉莉花 我的服务文件包含一个进行http get方法调用的函数使用Jasmine模拟控制器内的服务函数,jasmine,karma-jasmine,Jasmine,Karma Jasmine,我不认识茉莉花 我的服务文件包含一个进行http get方法调用的函数 app.service('myService', ['$http', function($http) { var incCount = function(total){ return total++; } var sampFunction = function(link){ var promise = $http({ method : '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;
}
有谁能帮助我,在控制器规范中如何模拟此服务的函数调用?
提前感谢。这应该可以做到:
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();
});
});
可能重复@JasonD:这个问题完全不同。这个问题与模拟具有http调用的服务有关。您能告诉我们您尝试了什么吗?