Улучшить эту документацию Просмотреть исходный код $httpBackend
- сервис в модуле ngMockE2E
Имитация HTTP-бекенда, подходящая для тестирования от края до края или разработки приложений без бэкенда, использующих $http сервис.
Данную реализацию можно использовать для ответа статическими или динамическими ответами через when api и его сокращения (whenGET, whenPOST, и т.д.) и при необходимости передавать запросы в реальный $httpBackend для определённых запросов (например, для взаимодействия с определёнными удалёнными api или для получения шаблонов с веб-сервера).
В отличие от модульного тестирования, в сценарии тестирования от края до края или в сценарии разработки приложения с заменой реального бэкенд-api на имитацию, часто желательно, чтобы определённая категория запросов обходила имитацию и выполняла реальный HTTP-запрос (например, для получения шаблонов или статических файлов с веб-сервера). Для настройки бэкенда с этим поведением используйте обработчик запросов passThrough из when, а не respond.
Кроме того, мы не хотим вручную сбрасывать запросы, как мы делаем при модульном тестировании. По этой причине $httpBackend для тестирования от края до края сбрасывает запросы автоматически, точно моделируя поведение объекта XMLHttpRequest.
Для настройки приложения для работы с этим HTTP-бекендом необходимо создать модуль, который зависит от ngMockE2E и ваших приложений модулей, и определить имитацию бэкенда:
var myAppDev = angular.module('myAppDev', ['myApp', 'ngMockE2E']);
myAppDev.run(function($httpBackend) {
var phones = [{name: 'phone1'}, {name: 'phone2'}];
// returns the current list of phones
$httpBackend.whenGET('/phones').respond(phones);
// adds a new phone to the phones array
$httpBackend.whenPOST('/phones').respond(function(method, url, data) {
var phone = angular.fromJson(data);
phones.push(phone);
return [200, phone, {}];
});
$httpBackend.whenGET(/^\/templates\//).passThrough(); // Requests for templare are handled by the real server
//...
});
После этого запустите ваше приложение с этим новым модулем.
Методы
-
when(method, url, [data], [headers], [keys]);
Создает новое определение бэкенда.
Параметры
Param Type Details method stringHTTP-метод.
url stringRegExpfunction(string)HTTP-адрес или функция, которая принимает URL и возвращает true, если URL соответствует текущему определению.
data (optional)stringRegExpfunction(string)Тело HTTP-запроса или функция, которая принимает строку данных и возвращает true, если данные соответствуют ожидаемым.
headers (optional)Objectfunction(Object)HTTP-заголовки или функция, которая принимает объект HTTP-заголовков и возвращает true, если заголовки соответствуют текущему определению.
keys (optional)ArrayМассив ключей для присваивания совпадениям регулярных выражений в URL запроса, описанном в $httpBackend mock.
Возвращает
requestHandlerВозвращает объект с методами
respondиpassThrough, которые управляют обработкой совпавшего запроса. Вы можете сохранить этот объект для последующего использования и вызватьrespondилиpassThroughснова, чтобы изменить способ обработки совпавшего запроса.- respond –
{ function([status,] data[, headers, statusText]) | function(function(method, url, data, headers, params)}– Метод respond принимает набор статических данных для возврата или функцию, которая может вернуть массив, содержащий код состояния ответа (число), данные ответа (массив|объект|строка), заголовки ответа (объект) и текст состояния (строка). - passThrough –
{function()}– Любой запрос, соответствующий определению бэкенда с обработчикомpassThrough, будет передан в реальный бэкенд (будет выполнен запрос XHR к серверу). - Оба метода возвращают объект
requestHandlerдля возможных переопределений.
- respond –
-
whenGET(url, [headers], [keys]);
Создает новое определение бэкенда для GET-запросов. Для получения дополнительной информации см.
when().Параметры
Param Type Details url stringRegExpfunction(string)HTTP-адрес или функция, которая принимает URL и возвращает true, если URL соответствует текущему определению.
headers (optional)Objectfunction(Object)HTTP-заголовки.
keys (optional)ArrayМассив ключей для присваивания совпадениям регулярных выражений в URL запроса, описанном в $httpBackend mock.
Возвращает
requestHandlerВозвращает объект с методами
respondиpassThrough, которые управляют обработкой совпавшего запроса. Вы можете сохранить этот объект для последующего использования и вызватьrespondилиpassThroughснова, чтобы изменить способ обработки совпавшего запроса. -
whenHEAD(url, [headers], [keys]);
Создает новое определение бэкенда для HEAD-запросов. Для получения дополнительной информации см.
when().Параметры
Param Type Details url stringRegExpfunction(string)HTTP-адрес или функция, которая принимает URL и возвращает true, если URL соответствует текущему определению.
headers (optional)Objectfunction(Object)HTTP-заголовки.
keys (optional)ArrayМассив ключей для присваивания совпадениям регулярных выражений в URL запроса, описанном в $httpBackend mock.
Возвращает
requestHandlerВозвращает объект с методами
respondиpassThrough, которые управляют обработкой совпавшего запроса. Вы можете сохранить этот объект для последующего использования и вызватьrespondилиpassThroughснова, чтобы изменить способ обработки совпавшего запроса. -
whenDELETE(url, [headers], [keys]);
Создает новое определение бэкенда для DELETE-запросов. Для получения дополнительной информации см.
when().Параметры
Param Type Details url stringRegExpfunction(string)HTTP-адрес или функция, которая принимает URL и возвращает true, если URL соответствует текущему определению.
headers (optional)Objectfunction(Object)HTTP-заголовки.
keys (optional)ArrayМассив ключей для присваивания совпадениям регулярных выражений в URL запроса, описанном в $httpBackend mock.
Возвращает
requestHandlerВозвращает объект с методами
respondиpassThrough, которые управляют обработкой совпавшего запроса. Вы можете сохранить этот объект для последующего использования и вызватьrespondилиpassThroughснова, чтобы изменить способ обработки совпавшего запроса. -
whenPOST(url, [data], [headers], [keys]);
Создает новое определение бэкенда для POST-запросов. Для получения дополнительной информации см.
when().Параметры
Param Type Details url stringRegExpfunction(string)HTTP-адрес или функция, которая принимает URL и возвращает true, если URL соответствует текущему определению.
data (optional)stringRegExpfunction(string)Тело HTTP-запроса или функция, которая принимает строку данных и возвращает true, если данные соответствуют ожидаемым.
headers (optional)Objectfunction(Object)HTTP-заголовки.
keys (optional)ArrayМассив ключей для присваивания совпадениям регулярных выражений в URL запроса, описанном в $httpBackend mock.
Возвращает
requestHandlerВозвращает объект с методами
respondиpassThrough, которые управляют обработкой совпавшего запроса. Вы можете сохранить этот объект для последующего использования и вызватьrespondилиpassThroughснова, чтобы изменить способ обработки совпавшего запроса. -
whenPUT(url, [data], [headers], [keys]);
Создает новое определение бэкенда для PUT-запросов. Для получения дополнительной информации см.
when().Параметры
Param Type Details url stringRegExpfunction(string)HTTP-адрес или функция, которая принимает URL и возвращает true, если URL соответствует текущему определению.
data (optional)stringRegExpfunction(string)Тело HTTP-запроса или функция, которая принимает строку данных и возвращает true, если данные соответствуют ожидаемым.
headers (optional)Objectfunction(Object)HTTP-заголовки.
keys (optional)ArrayМассив ключей для присваивания совпадениям регулярных выражений в URL запроса, описанном в $httpBackend mock.
Возвращает
requestHandlerВозвращает объект с методами
respondиpassThrough, которые управляют обработкой совпавшего запроса. Вы можете сохранить этот объект для последующего использования и вызватьrespondилиpassThroughснова, чтобы изменить способ обработки совпавшего запроса. -
whenPATCH(url, [data], [headers], [keys]);
Создает новое определение бэкенда для PATCH-запросов. Для получения дополнительной информации см.
when().Параметры
Param Type Details url stringRegExpfunction(string)HTTP-адрес или функция, которая принимает URL и возвращает true, если URL соответствует текущему определению.
data (optional)stringRegExpfunction(string)Тело HTTP-запроса или функция, которая принимает строку данных и возвращает true, если данные соответствуют ожидаемым.
headers (optional)Objectfunction(Object)HTTP-заголовки.
keys (optional)ArrayМассив ключей для присваивания совпадениям регулярных выражений в URL запроса, описанном в $httpBackend mock.
Возвращает
requestHandlerВозвращает объект с методами
respondиpassThrough, которые управляют обработкой совпавшего запроса. Вы можете сохранить этот объект для последующего использования и вызватьrespondилиpassThroughснова, чтобы изменить способ обработки совпавшего запроса.
-
whenJSONP(url, [keys]);
Создает новое определение бэкенда для запросов JSONP. Дополнительную информацию см. в
when().Параметры
Параметр Тип Подробности url stringRegExpfunction(string)HTTP-адрес URL или функция, которая получает URL-адрес и возвращает true, если URL соответствует текущему определению.
keys (необязательно)ArrayМассив ключей для присвоения совпадениям по регулярному выражению в URL-адресе запроса, описанный в $httpBackend mock.
Возвращаемое значение
requestHandlerВозвращает объект с методами
respondиpassThrough, которые управляют тем, как обрабатывается соответствующий запрос. Вы можете сохранить этот объект для дальнейшего использования и снова вызватьrespondилиpassThrough, чтобы изменить обработку соответствующего запроса. -
whenRoute(method, url);
Создает новое определение бэкенда, которое сравнивает только с запрошенным маршрутом.
Параметры
Параметр Тип Подробности method stringHTTP-метод.
url stringСтрока HTTP-URL, которая поддерживает сопоставление параметров с двоеточием.
Возвращаемое значение
requestHandlerВозвращает объект с методами
respondиpassThrough, которые управляют тем, как обрабатывается соответствующий запрос. Вы можете сохранить этот объект для дальнейшего использования и снова вызватьrespondилиpassThrough, чтобы изменить обработку соответствующего запроса.
© 2010–2017 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://code.angularjs.org/1.5.11/docs/api/ngMockE2E/service/$httpBackend