Spec-Zone.ru › Angular.js 1.5

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

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

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

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

Во время тестирования мы хотим, чтобы наши тесты выполнялись быстро и не зависели от внешних факторов, поэтому мы не хотим отправлять запросы XHR или JSONP на реальный сервер. Всё, что нам действительно нужно, это проверить, был ли отправлен определённый запрос, или же просто позволить приложению сделать запросы, ответить предварительно обученными ответами и утвердить, что конечный результат соответствует ожидаемому.

Эта модель может быть использована для ответа статическими или динамическими ответами через API expect и when и их сокращения (expectGET, whenPOST, и т. д.).

Когда Angular-приложение нуждается в данных с сервера, оно вызывает сервис $http, который отправляет запрос на реальный сервер с помощью сервиса $httpBackend. С помощью инъекции зависимостей легко инжектировать модель $httpBackend (у которой тот же API, что и $httpBackend) и использовать её для проверки запросов и ответа данными для тестирования без отправки запроса на реальный сервер.

Существует два способа указать, какие данные для тестирования должны возвращаться как ответы http от модели бекенда, когда код, подлежащий тестированию, делает запросы http:

  • $httpBackend.expect - определяет ожидание запроса
  • $httpBackend.when - определяет определение бекенда

Ожидания запросов против определений бекенда

Ожидания запросов предоставляют способ утверждения о запросах, сделанных приложением, и определения ответов на эти запросы. Тест провалится, если ожидаемые запросы не будут сделаны или сделаны в неправильном порядке.

Определения бекенда позволяют определить фейковый бекенд для вашего приложения, который не утверждает, был ли сделан конкретный запрос, а просто возвращает обученный ответ, если запрос сделан. Тест пройдёт независимо от того, был ли запрос сделан во время тестирования.

Ожидания запросов Определения бекенда
Синтаксис .expect(...).respond(...) .when(...).respond(...)
Типичное использование строгие тесты модулей слабые (чёрного ящика) тесты модулей
Выполнение нескольких запросов НЕТ ДА
Порядок запросов важен ДА НЕТ
Запрос обязателен ДА НЕТ
Ответ обязателен необязательно (см. ниже) ДА

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

Если ожидание запроса не имеет определённого ответа, алгоритм ищет соответствующий ответ в определениях бекенда.

Если запрос не соответствует ни одному ожиданию, или если ожидание не определяет ответ, определения бекенда обрабатываются в последовательном порядке, чтобы увидеть, совпадает ли какой-либо из них с запросом. Возвращается ответ от первого совпавшего определения.

Очистка HTTP-запросов

Используемый в производстве $httpBackend всегда отвечает на запросы асинхронно. Если мы сохранили бы это поведение в тестировании модулей, нам пришлось бы создавать асинхронные тесты модулей, которые трудно писать, следить и поддерживать. Но и имитация тестирования не может отвечать синхронно; это изменило бы выполнение кода, подлежащего тестированию. По этой причине имитация $httpBackend имеет метод flush(), который позволяет тесту явно очистить ожидающие запросы. Это сохраняет асинхронный API бекенда, позволяя тесту выполняться синхронно.

Тестирование модулей с mock $httpBackend

Следующий код показывает, как настроить и использовать модель бекенда при тестировании модулей контроллера. Сначала мы создаём контроллер, подлежащий тестированию:

// The module code
angular
  .module('MyApp', [])
  .controller('MyController', MyController);

// The controller code
function MyController($scope, $http) {
  var authToken;

  $http.get('/auth.py').then(function(response) {
    authToken = response.headers('A-Token');
    $scope.user = response.data;
  });

  $scope.saveMessage = function(message) {
    var headers = { 'Authorization': authToken };
    $scope.status = 'Saving...';

    $http.post('/add-msg.py', message, { headers: headers } ).then(function(response) {
      $scope.status = '';
    })['catch'](function() {
      $scope.status = 'Failed...';
    });
  };
}

Теперь мы настраиваем модель бекенда и создаём тесты:

// testing controller
describe('MyController', function() {
   var $httpBackend, $rootScope, createController, authRequestHandler;

   // Set up the module
   beforeEach(module('MyApp'));

   beforeEach(inject(function($injector) {
     // Set up the mock http service responses
     $httpBackend = $injector.get('$httpBackend');
     // backend definition common for all tests
     authRequestHandler = $httpBackend.when('GET', '/auth.py')
                            .respond({userId: 'userX'}, {'A-Token': 'xxx'});

     // Get hold of a scope (i.e. the root scope)
     $rootScope = $injector.get('$rootScope');
     // The $controller service is used to create instances of controllers
     var $controller = $injector.get('$controller');

     createController = function() {
       return $controller('MyController', {'$scope' : $rootScope });
     };
   }));


   afterEach(function() {
     $httpBackend.verifyNoOutstandingExpectation();
     $httpBackend.verifyNoOutstandingRequest();
   });


   it('should fetch authentication token', function() {
     $httpBackend.expectGET('/auth.py');
     var controller = createController();
     $httpBackend.flush();
   });


   it('should fail authentication', function() {

     // Notice how you can change the response even after it was set
     authRequestHandler.respond(401, '');

     $httpBackend.expectGET('/auth.py');
     var controller = createController();
     $httpBackend.flush();
     expect($rootScope.status).toBe('Failed...');
   });


   it('should send msg to server', function() {
     var controller = createController();
     $httpBackend.flush();

     // now you don’t care about the authentication, but
     // the controller will still send the request and
     // $httpBackend will respond without you having to
     // specify the expectation and response for this request

     $httpBackend.expectPOST('/add-msg.py', 'message content').respond(201, '');
     $rootScope.saveMessage('message content');
     expect($rootScope.status).toBe('Saving...');
     $httpBackend.flush();
     expect($rootScope.status).toBe('');
   });


   it('should send auth header', function() {
     var controller = createController();
     $httpBackend.flush();

     $httpBackend.expectPOST('/add-msg.py', undefined, function(headers) {
       // check if the header was sent, if it wasn't the expectation won't
       // match the request and the test will fail
       return headers['Authorization'] === 'xxx';
     }).respond(201, '');

     $rootScope.saveMessage('whatever');
     $httpBackend.flush();
   });
});

Динамические ответы

Вы определяете ответ на запрос, прицепляя вызов respond() к определению или ожиданию. Если вы передадите обратный вызов в качестве первого параметра для respond(callback), то вы сможете динамически сгенерировать ответ на основе свойств запроса.

Функция callback должна иметь вид function(method, url, data, headers, params).

Параметры запроса

По умолчанию параметры запроса в URL-адресах запроса анализируются в объект params. Таким образом, URL-адрес запроса /list?q=searchstr&orderby=-name установит params в {q: 'searchstr', orderby: '-name'}.

Сопоставление параметров с регулярными выражениями

Если ожидание или определение используют регулярное выражение для сопоставления URL-адреса, вы можете передать массив ключей через аргумент params. Индекс каждого ключа в массиве будет соответствовать индексу группы в регулярном выражении.

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

Это также относится к сокращённым методам when и expect.

$httpBackend.expect('GET', /\/user\/(.+)/, undefined, undefined, ['id'])
  .respond(function(method, url, data, headers, params) {
    // for requested url of '/user/1234' params is {id: '1234'}
  });

$httpBackend.whenPATCH(/\/user\/(.+)\/article\/(.+)/, undefined, undefined, ['user', 'article'])
  .respond(function(method, url, data, headers, params) {
    // for url of '/user/1234/article/567' params is {user: '1234', article: '567'}
  });

Сопоставление запросов маршрутов

Для дополнительного удобства доступны сокращения whenRoute и expectRoute . Эти методы предлагают сопоставление URL-пути с использованием двоеточия, игнорируя строку запроса. Это позволяет выполнять объявления, подобные тому, как настраиваются маршруты приложения с помощью $routeProvider. Поскольку эти методы преобразуют URL-определение в регулярное выражение, порядок объявления важен. В сочетании с анализом параметров запроса можно сделать следующее:

$httpBackend.whenRoute('GET', '/users/:id')
  .respond(function(method, url, data, headers, params) {
    return [200, MockUserList[Number(params.id)]];
  });

$httpBackend.whenRoute('GET', '/users')
  .respond(function(method, url, data, headers, params) {
    var userList = angular.copy(MockUserList),
      defaultSort = 'lastName',
      count, pages, isPrevious, isNext;

    // paged api response '/v1/users?page=2'
    params.page = Number(params.page) || 1;

    // query for last names '/v1/users?q=Archer'
    if (params.q) {
      userList = $filter('filter')({lastName: params.q});
    }

    pages = Math.ceil(userList.length / pagingLength);
    isPrevious = params.page > 1;
    isNext = params.page < pages;

    return [200, {
      count:    userList.length,
      previous: isPrevious,
      next:     isNext,
      // sort field -> '/v1/users?sortBy=firstName'
      results:  $filter('orderBy')(userList, params.sortBy || defaultSort)
                  .splice((params.page - 1) * pagingLength, pagingLength)
    }];
  });

Методы

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

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

    Параметры

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

    Метод HTTP.

    url stringRegExpfunction(string)

    HTTP-URL или функция, которая принимает URL и возвращает true, если URL соответствует текущему определению.

    data
    (необязательно)
    stringRegExpfunction(string)

    Тело HTTP-запроса или функция, которая принимает строку данных и возвращает true, если данные соответствуют ожидаемым.

    headers
    (необязательно)
    Objectfunction(Object)

    HTTP-заголовки или функция, которая принимает объект заголовков и возвращает true, если заголовки соответствуют текущему определению.

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

    Массив ключей для присвоения совпадениям с регулярными выражениями в URL-адресе запроса, описанном выше.

    Возвращает

    requestHandler

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

    • respond –
      {function([status,] data[, headers, statusText])
      | function(function(method, url, data, headers, params)}
      
      – Метод respond принимает набор статических данных для возврата или функцию, которая может вернуть массив, содержащий код ответа (число), данные ответа (массив|объект|строка), заголовки ответа (объект) и текст для кода состояния (строка). Метод respond возвращает объект requestHandler для возможных перезаписей.
  • whenGET(url, [headers], [keys]);

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

    Параметры

    Параметр Тип Подробности
    url stringRegExpfunction(string)

    HTTP-URL или функция, которая принимает URL и возвращает true, если URL соответствует текущему определению.

    headers
    (необязательно)
    Objectfunction(Object)

    HTTP-заголовки.

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

    Массив ключей для присвоения совпадениям с регулярными выражениями в URL-адресе запроса, описанном выше.

    Возвращает

    requestHandler

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

  • whenHEAD(url, [headers], [keys]);

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

    Параметры

    Параметр Тип Подробности
    url stringRegExpfunction(string)

    HTTP-URL или функция, которая принимает URL и возвращает true, если URL соответствует текущему определению.

    headers
    (необязательно)
    Objectfunction(Object)

    HTTP-заголовки.

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

    Массив ключей для присвоения совпадениям с регулярными выражениями в URL-адресе запроса, описанном выше.

    Возвращает

    requestHandler

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

  • whenDELETE(url, [headers], [keys]);

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

    Параметры

    Параметр Тип Подробности
    url stringRegExpfunction(string)

    HTTP-URL или функция, которая принимает URL и возвращает true, если URL соответствует текущему определению.

    headers
    (необязательно)
    Objectfunction(Object)

    HTTP-заголовки.

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

    Массив ключей для присвоения совпадениям с регулярными выражениями в URL-адресе запроса, описанном выше.

    Возвращает

    requestHandler

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

  • whenPOST(url, [data], [headers], [keys]);

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

    Параметры

    Параметр Тип Подробности
    url stringRegExpfunction(string)

    HTTP-URL или функция, которая принимает URL и возвращает true, если URL соответствует текущему определению.

    data
    (необязательно)
    stringRegExpfunction(string)

    Тело HTTP-запроса или функция, которая принимает строку данных и возвращает true, если данные соответствуют ожидаемым.

    headers
    (необязательно)
    Objectfunction(Object)

    HTTP-заголовки.

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

    Массив ключей для присвоения совпадениям с регулярными выражениями в URL-адресе запроса, описанном выше.

    Возвращает

    requestHandler

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

  • whenPUT(url, [data], [headers], [keys]);

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

    Параметры

    Параметр Тип Подробности
    url stringRegExpfunction(string)

    HTTP-URL или функция, которая принимает URL и возвращает true, если URL соответствует текущему определению.

    data
    (необязательно)
    stringRegExpfunction(string)

    Тело HTTP-запроса или функция, которая принимает строку данных и возвращает true, если данные соответствуют ожидаемым.

    headers
    (необязательно)
    Objectfunction(Object)

    HTTP-заголовки.

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

    Массив ключей для присвоения совпадениям с регулярными выражениями в URL-адресе запроса, описанном выше.

    Возвращает

    requestHandler

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

  • whenJSONP(url, [keys]);

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

    Параметры

    Параметр Тип Подробности
    url stringRegExpfunction(string)

    HTTP-URL или функция, которая принимает URL и возвращает true, если URL соответствует текущему определению.

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

    Массив ключей для присвоения совпадениям с регулярными выражениями в URL-адресе запроса, описанном выше.

    Возвращает

    requestHandler

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

  • whenRoute(method, url);

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

    Параметры

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

    Метод HTTP.

    url string

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

    Возвращает

    requestHandler

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

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

    Создает новое ожидание запроса.

    Параметры

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

    HTTP-метод.

    url stringRegExpfunction(string)

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

    data
    (необязательно)
    stringRegExpfunction(string)Object

    Тело HTTP-запроса или функция, которая получает строку данных и возвращает true, если данные соответствуют ожидаемым, или объект, если тело запроса в формате JSON.

    headers
    (необязательно)
    Objectfunction(Object)

    HTTP-заголовки или функция, которая получает объект HTTP-заголовков и возвращает true, если заголовки соответствуют текущему ожиданию.

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

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

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

    requestHandler

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

    • respond –
      { function([status,] data[, headers, statusText])
      | function(function(method, url, data, headers, params)}
      
      – Метод respond принимает набор статических данных для возврата или функцию, которая может вернуть массив, содержащий код состояния ответа (число), данные ответа (массив/объект/строка), заголовки ответа (объект) и текст для статуса (строка). Метод respond возвращает объект requestHandler для возможных перезаписей.
  • expectGET(url, [headers], [keys]);

    Создает новое ожидание запроса GET. Дополнительная информация в expect().

    Параметры

    Параметр Тип Подробности
    url stringRegExpfunction(string)

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

    headers
    (необязательно)
    Object

    HTTP-заголовки.

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

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

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

    requestHandler

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

  • expectHEAD(url, [headers], [keys]);

    Создает новое ожидание запроса HEAD. Дополнительная информация в expect().

    Параметры

    Параметр Тип Подробности
    url stringRegExpfunction(string)

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

    headers
    (необязательно)
    Object

    HTTP-заголовки.

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

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

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

    requestHandler

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

  • expectDELETE(url, [headers], [keys]);

    Создает новое ожидание запроса DELETE. Дополнительная информация в expect().

    Параметры

    Параметр Тип Подробности
    url stringRegExpfunction(string)

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

    headers
    (необязательно)
    Object

    HTTP-заголовки.

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

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

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

    requestHandler

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

  • expectPOST(url, [data], [headers], [keys]);

    Создает новое ожидание запроса POST. Дополнительная информация в expect().

    Параметры

    Параметр Тип Подробности
    url stringRegExpfunction(string)

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

    data
    (необязательно)
    stringRegExpfunction(string)Object

    Тело HTTP-запроса или функция, которая получает строку данных и возвращает true, если данные соответствуют ожидаемым, или объект, если тело запроса в формате JSON.

    headers
    (необязательно)
    Object

    HTTP-заголовки.

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

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

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

    requestHandler

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

  • expectPUT(url, [data], [headers], [keys]);

    Создает новое ожидание запроса PUT. Дополнительная информация в expect().

    Параметры

    Параметр Тип Подробности
    url stringRegExpfunction(string)

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

    data
    (необязательно)
    stringRegExpfunction(string)Object

    Тело HTTP-запроса или функция, которая получает строку данных и возвращает true, если данные соответствуют ожидаемым, или объект, если тело запроса в формате JSON.

    headers
    (необязательно)
    Object

    HTTP-заголовки.

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

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

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

    requestHandler

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

  • expectPATCH(url, [data], [headers], [keys]);

    Создает новое ожидание запроса PATCH. Дополнительная информация в expect().

    Параметры

    Параметр Тип Подробности
    url stringRegExpfunction(string)

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

    data
    (необязательно)
    stringRegExpfunction(string)Object

    Тело HTTP-запроса или функция, которая получает строку данных и возвращает true, если данные соответствуют ожидаемым, или объект, если тело запроса в формате JSON.

    headers
    (необязательно)
    Object

    HTTP-заголовки.

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

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

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

    requestHandler

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

  • expectJSONP(url, [keys]);

    Создаёт новое ожидание запроса для JSONP-запросов. Для получения дополнительной информации см. expect().

    Параметры

    Параметр Тип Подробности
    url stringRegExpfunction(string)

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

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

    Массив ключей для присвоения совпадениям с регулярными выражениями в URL-адресе запроса, описанном выше.

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

    requestHandler

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

  • expectRoute(method, url);

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

    Параметры

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

    HTTP-метод.

    url string

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

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

    requestHandler

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

  • flush([count], [skip]);

    Очищает ожидающие запросы, используя обученные ответы. Запросы очищаются в порядке их поступления, но также можно пропустить один или несколько запросов (например, для их очистки позже). Это полезно для моделирования сценариев, когда ответы приходят с сервера в произвольном порядке.

    Если ожидающих запросов для очистки нет, когда вызывается метод, выбрасывается исключение (так как это обычно признак ошибки программирования).

    Параметры

    Параметр Тип Подробности
    count
    (необязательно)
    number

    Количество ответов для очистки. Если не определено/null, очищаются все ожидающие запросы (начиная после skip).

    skip
    (необязательно)
    number

    Количество ожидающих запросов для пропуска. Например, значение 5 пропустит первые 5 ожидающих запросов и начнёт очистку с 6-го.

    (по умолчанию: 0)

  • verifyNoOutstandingExpectation();

    Проверяет, что все запросы, определённые с помощью API expect, были выполнены. Если какой-либо из запросов не был выполнен, verifyNoOutstandingExpectation выбрасывает исключение.

    Обычно этот метод вызывается после каждого тестового случая, который проверяет запросы с помощью клаузы «afterEach».

    afterEach($httpBackend.verifyNoOutstandingExpectation);
    
  • verifyNoOutstandingRequest();

    Проверяет, что нет ожидающих запросов, которые требуют очистки.

    Обычно этот метод вызывается после каждого тестового случая, который проверяет запросы с помощью клаузы «afterEach».

    afterEach($httpBackend.verifyNoOutstandingRequest);
    
  • resetExpectations();

    Сбрасывает все ожидания запросов, но сохраняет все определения бэкенда. Обычно resetExpectations вызывается во время многофазного тестирования, когда вы хотите повторно использовать тот же экземпляр подделки $httpBackend.

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

Spec-Zone.ru

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