How I can make unit-test of $http factory, if it using post method, for example:
// controller $scope.logOut = function (){ logOutFactory.logOut().then(function(resp){ }); }; // service app.factory('logOutFactory', ['$http', '$q', 'CONST', function ($http, $q, CONST){ var logoutApiUrl = CONST.URL+'logout'; return { logOut: function() { var deferred = $q.defer(); $http({ method: "post", url: logoutApiUrl }) .success(function (data) { deferred.resolve(data); }) .error(function (data) { deferred.reject('error in $http request'); console.log(data, status, headers, config); }); return deferred.promise; } } }]); // unit test describe("myApp", function () { beforeEach(module('app')); describe("Ctrl", function () { var scope, httpBackend, fakedMainResponse; beforeEach(inject(function ($rootScope, $controller, $httpBackend, $http) { scope = $rootScope.$new(); httpBackend = $httpBackend; httpBackend.expectPOST('https://url/logout').respond(200); $controller('Ctrl', { $scope: scope, $http: $http }); })); it("success response - empty array from server", function () { //httpBackend.flush(); }); }); });
How i can mock $http response in Jasmine test ??? I'm trying but i see an error "Error: Unexpected request: POST /url/logout No more request expected "