Как я могу сделать блок-тест $ HTTP завод, если он с помощью метода POST, например:
// 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();
});
});
});
Как Я могу издеваться над ответом $ http в тесте Жасмин ??? Я пытался, но я вижу ошибку «Ошибка: Неожиданный запрос: POST/URL/выход из системы Нет больше просьба ожидать »