Улучшить эту документацию Просмотреть исходный код $httpBackend
- сервис в модуле ngMockE2E
Имитация HTTP-бекенда, подходящая для тестирования end-to-end или разработки приложений без бэкенда, использующих сервис $http.
Примечание: Для имитации http-бекенда, подходящей для unit-тестирования, см. unit-тестирование имитации $httpBackend.
Данная реализация может использоваться для ответа статическими или динамическими ответами через when api и его сокращения (whenGET, whenPOST, и т.д.) и, при необходимости, передавать запросы в реальный $httpBackend для определенных запросов (например, для взаимодействия с определенными удаленными api или для извлечения шаблонов с веб-сервера).
В отличие от unit-тестирования, в сценарии end-to-end тестирования или в сценарии, когда приложение разрабатывается с заменой реального бэкенд-api на имитацию, часто желательно, чтобы определенные категории запросов обходили имитацию и выполняли реальный http-запрос (например, для получения шаблонов или статических файлов с веб-сервера). Для настройки бекенда с этим поведением используйте обработчик запросов passThrough из when вместо respond.
Кроме того, мы не хотим вручную сбрасывать запросы, имитированные в unit-тестировании. По этой причине e2e $httpBackend автоматически сбрасывает имитированные запросы, точно имитируя поведение объекта XMLHttpRequest.
Для настройки приложения для работы с этим http-бекендом, необходимо создать модуль, который зависит от ngMockE2E и ваших прикладных модулей и определяет фейковый бэкенд:
myAppDev = angular.module('myAppDev', ['myApp', 'ngMockE2E']);
myAppDev.run(function($httpBackend) {
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();
//...
});
После этого запустите ваше приложение с этим новым модулем.
Методы
-
when(method, url, [data], [headers]);
Создаёт новое определение бэкэнда.
Параметры
Параметр Тип Подробности method stringМетод HTTP.
url stringRegExpHTTP-адрес.
data (необязательно)stringRegExpТело HTTP-запроса.
headers (необязательно)Objectfunction(Object)HTTP-заголовки или функция, которая получает объект HTTP-заголовков и возвращает true, если заголовки соответствуют текущему определению.
Возвращает
requestHandlerВозвращает объект с методами
respondиpassThrough, которые управляют обработкой соответствующего запроса.- respond –
{function([status,] data[, headers, statusText]) | function(function(method, url, data, headers)}– Метод respond принимает набор статических данных для возврата или функцию, которая может возвратить массив, содержащий код состояния ответа (число), данные ответа (строка), заголовки ответа (объект) и текст для кода состояния (строка). - passThrough –
{function()}– Любой запрос, соответствующий определению бэкэнда с обработчикомpassThrough, будет передан на реальный бэкэнд (будет сделан запрос XHR к серверу).
- respond –
-
whenGET(url, [headers]);
Создаёт новое определение бэкэнда для запросов GET. Для дополнительной информации см.
when().Параметры
Параметр Тип Подробности url stringRegExpHTTP-адрес.
headers (необязательно)Objectfunction(Object)HTTP-заголовки.
Возвращает
requestHandlerВозвращает объект с методами
respondиpassThrough, которые управляют обработкой соответствующего запроса. -
whenHEAD(url, [headers]);
Создаёт новое определение бэкэнда для запросов HEAD. Для дополнительной информации см.
when().Параметры
Параметр Тип Подробности url stringRegExpHTTP-адрес.
headers (необязательно)Objectfunction(Object)HTTP-заголовки.
Возвращает
requestHandlerВозвращает объект с методами
respondиpassThrough, которые управляют обработкой соответствующего запроса. -
whenDELETE(url, [headers]);
Создаёт новое определение бэкэнда для запросов DELETE. Для дополнительной информации см.
when().Параметры
Параметр Тип Подробности url stringRegExpHTTP-адрес.
headers (необязательно)Objectfunction(Object)HTTP-заголовки.
Возвращает
requestHandlerВозвращает объект с методами
respondиpassThrough, которые управляют обработкой соответствующего запроса. -
whenPOST(url, [data], [headers]);
Создаёт новое определение бэкэнда для запросов POST. Для дополнительной информации см.
when().Параметры
Параметр Тип Подробности url stringRegExpHTTP-адрес.
data (необязательно)stringRegExpТело HTTP-запроса.
headers (необязательно)Objectfunction(Object)HTTP-заголовки.
Возвращает
requestHandlerВозвращает объект с методами
respondиpassThrough, которые управляют обработкой соответствующего запроса.
-
whenPUT(url, [data], [headers]);
Создаёт новое определение бэкенда для запросов PUT. Дополнительную информацию см. в
when().Параметры
Параметр Тип Подробности url stringRegExpHTTP-адрес.
data (необязательно)stringRegExpТело HTTP-запроса.
headers (необязательно)Objectfunction(Object)HTTP-заголовки.
Возвращаемое значение
requestHandlerВозвращает объект с методами
respondиpassThrough, которые управляют обработкой соответствующего запроса. -
whenPATCH(url, [data], [headers]);
Создаёт новое определение бэкенда для запросов PATCH. Дополнительную информацию см. в
when().Параметры
Параметр Тип Подробности url stringRegExpHTTP-адрес.
data (необязательно)stringRegExpТело HTTP-запроса.
headers (необязательно)Objectfunction(Object)HTTP-заголовки.
Возвращаемое значение
requestHandlerВозвращает объект с методами
respondиpassThrough, которые управляют обработкой соответствующего запроса. -
whenJSONP(url);
Создаёт новое определение бэкенда для запросов JSONP. Дополнительную информацию см. в
when().Параметры
Параметр Тип Подробности url stringRegExpHTTP-адрес.
Возвращаемое значение
requestHandlerВозвращает объект с методами
respondиpassThrough, которые управляют обработкой соответствующего запроса.
© 2010–2017 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://code.angularjs.org/1.2.32/docs/api/ngMockE2E/service/$httpBackend