0

Я хочу проверить свой код с помощью реальных вызовов API (так что я могу проверить API, а также, когда я меняю API, мне также не нужно менять JS-тест, и намного больше преимуществ.) вместо обычного $httpBackend.expectPOST('http://api.com/login').response(200).Karma Jasmine AngularJS тестирование с реальными HTTP-запросами

По сути, я хочу, чтобы проверить ProductsController, который ожидает быть зарегистрированным через AuthService.login() метод и получить список продуктов через resolve функции ui-router «s.

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

ответ

1

Из httpBackend документации $ здесь: https://docs.angularjs.org/api/ngMockE2E/service/ $ httpBackend

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

Так, что-то вроде:. $ HttpBackend.whenGET (/.*/) PASSTHROUGH(); должно быть достаточно.

+0

где именно вы это делаете? Я пытаюсь построить тест для существующей базы кода, которая использует $ http, и я не могу заставить ее работать. Не могли бы вы привести пример? – Mauro

Смежные вопросы