Ответ 1
А.. Извините, я просто ошибся с моим RegEx:
если этот тип $httpBackend.whenGET(/partials/).passThrough();
Затем все начинают работать.
Итак, я получил свой урок: не забудьте поставить: passThrough(); с правильным RegEx.
Кажется, это является рабочим решением, которое показывает, как работать с $httpBacked
http://jsfiddle.net/EgMpe/8/
Но для моего случая:
<сильные > маршруты
app.config(['$routeProvider', function($routeProvider) { $routeProvider.
when('/', {templateUrl: 'partials/user-list.html'}).
...
поддельный сервис:
app.run(function($httpBackend) {
var users = [{"id":1,"name":"bob","email":"[email protected]"}, {"id":2,"name":"bob2","email":"[email protected]"}]
$httpBackend.whenGET('/rest/users').respond(function(method,url,data) {
console.log("Getting users");
return [200, users, {}];
});
});
..
реальное обслуживание:
services.factory('Users', function($resource){
return $resource('/rest/users', {}, {
get: {method: 'GET', isArray:true}
});
});
У меня есть ошибка при переходе на мой маршрут "/", который перенаправляет меня на страницу user-list.html
:
Ошибка: Неожиданный запрос: GET partials/user-list.html Отсутствие запроса ожидаемый в $httpBackend.../mysite/public/ angular/libs/angular -1.2.0/angular -mocks.js: 1060: 9)
Question1: Предоставляет ли httpBackend
выполнение каких-либо других http
запросов?
Я попытался использовать метод passThrough, чтобы http попал в реальную сторону сервера:
$httpBackend.whenGET(/^\/mysite\//).passThrough();
Но это не помогает.
А.. Извините, я просто ошибся с моим RegEx:
если этот тип $httpBackend.whenGET(/partials/).passThrough();
Затем все начинают работать.
Итак, я получил свой урок: не забудьте поставить: passThrough(); с правильным RegEx.
Используя $httpBackend
, вы должны заранее указать весь запрос, который вы собираетесь выполнить. Возможно, этот короткий отрывок из Mastering Web Application Development with AngularJS
прояснит, почему:
Метод verifyNoOutstandingExpectation проверяет, что все ожидаемые (были вызваны вызовы $http, а реакции сброшены), тогда как verifyNoOutstandingRequest позволяет убедиться, что проверенный код не запускается любые непредвиденные вызовы XHR. Используя эти два метода, мы можем убедиться, что код под тестом вызывает все ожидаемые методы и только ожидаемые.