Spec-Zone.ru › Angular.js 1.6

Улучшить документацию Просмотреть исходный код $httpBackend

  1. сервис в модуле ngMockE2E

Обзор

Реализация фейкового HTTP бэкэнда, подходящая для тестирования end-to-end или разработки приложений без бэкэнда, которые используют $http service.

Примечание: Для реализации фейкового HTTP бэкэнда, подходящего для юнит-тестирования, см. юнит-тестирование $httpBackend mock.

Данная реализация может быть использована для ответа с помощью статических или динамических ответов через when API и его сокращения (whenGET, whenPOST, и т.д.) и, по желанию, перенаправлять запросы на реальный $httpBackend для определенных запросов (например, для взаимодействия с определенными удалёнными API или для получения шаблонов с веб-сервера).

В отличие от юнит-тестирования, в сценарии end-to-end тестирования или когда приложение разрабатывается с заменой реального бэкэнда на эмуляцию, часто желательно, чтобы определенный тип запросов обходил эмуляцию и отправлял реальный HTTP запрос (например, для получения шаблонов или статических файлов с веб-сервера). Чтобы настроить бэкэнд с этим поведением, используйте обработчик запросов passThrough из when вместо respond.

Кроме того, мы не хотим вручную очищать смоделированные запросы, как это делается во время юнит-тестирования. По этой причине e2e $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 templates are handled by the real server
  //...
});

После этого, запустите ваше приложение с этим новым модулем.

Методы

  • when(method, url, [data], [headers], [keys]);

    Создаёт новое определение бэкенда.

    Параметры

    Param Type Details
    method string

    HTTP-метод.

    url stringRegExpfunction(string)=

    HTTP-URL или функция, которая получает 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 для возможных перезаписей.
  • whenGET(url, [headers], [keys]);

    Создаёт новое определение бэкенда для GET-запросов. Для получения дополнительной информации см. when().

    Параметры

    Param Type Details
    url stringRegExpfunction(string)=

    HTTP-URL или функция, которая получает 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 или функция, которая получает 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 или функция, которая получает 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 или функция, которая получает 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 или функция, которая получает 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 или функция, которая получает 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-адрес или функция, которая получает адрес и возвращает true, если адрес соответствует текущему определению.

    keys
    (необязательно)
    Array

    Массив ключей для присвоения совпадениям с регулярными выражениями в адресе запроса, описанных в $httpBackend mock.

    Возвращаемое значение

    requestHandler

    Возвращает объект с методами respond и passThrough, которые контролируют обработку соответствующего запроса. Вы можете сохранить этот объект для последующего использования и вызвать respond или passThrough снова, чтобы изменить обработку соответствующего запроса.

  • whenRoute(method, url);

    Создает новое определение бэкенда, которое сравнивает только с запрошенным маршрутом.

    Параметры

    Параметр Тип Подробности
    method string

    HTTP-метод.

    url string

    Строка HTTP-адреса, поддерживающая сопоставление параметров с двоеточием.

    Возвращаемое значение

    requestHandler

    Возвращает объект с методами respond и passThrough, которые контролируют обработку соответствующего запроса. Вы можете сохранить этот объект для последующего использования и вызвать respond или passThrough снова, чтобы изменить обработку соответствующего запроса.

Пример

© 2010–2018 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://code.angularjs.org/1.6.9/docs/api/ngMockE2E/service/$httpBackend

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API