Я только что прочитал много статей об издевательском $ http и что-то не так с моим кодом. У меня все еще есть ошибка: Нет ожидающего запроса на сброс!Жасмин угловатый - насмешливый http-запрос
Мой метод из controllers.js похож на это (browserDebugMode, WebRoot, commentsAction глобальные переменные - это не миль идея сделать его глобальным: D)
$scope.getComments = function(){
if (browserDebugMode) {
$http({
method : "GET",
url : webRoot+commentsAction,
params : {action: "list"},
})
.success(function(data, status) {
//...
})
.error(function(data, status) {
//...
});
}
}
А теперь тест на него:
var browserDebugMode = true;
var webRoot = "http://localhost/name";
var commentsAction = '/commentsMobile.php';
describe('myApp', function() {
var scope,
httpBackend,
http,
controller;
beforeEach(angular.mock.module('myApp'));
describe('NewsDetailCtrl', function() {
beforeEach(inject(function ($rootScope, $controller, $httpBackend, $http) {
scope = $rootScope.$new();
httpBackend = $httpBackend;
http = $http;
httpBackend.when("GET", webRoot+commentsAction).respond([{}]);
controller = $controller('NewsDetailCtrl', {
'$scope': scope, 'GlobalService': globalService, $http: $http
});
}));
it('checks if AJAX is done', function() {
httpBackend.expectGET(webRoot+commentsAction).respond([{}]);
scope.getComments()
httpBackend.flush();
});
});
});
И, пожалуйста, не запрашивайте PHP-скрипт :) Мне было предложено сделать это.
Я просто хочу проверить, могу ли я проверить $ http, ничего более. Я не знаю, что я делаю неправильно. Я тестировал другие вещи в этом контроллере, и все было в порядке, я посмотрел, запущен ли getComments() с console.log, и он уволен. Что-то должно быть неправильно с настройкой.