2016-01-22 3 views
2

У нас есть набор тестовых примеров, который является общим для многих разных форм. Некоторые формы могут запускать ленивый загрузчик, который будет предварительно отбирать некоторые данные в своем пост-разделе директивы, таким образом, запуская HTTP GET.AngularJS Jasmine Test - как пропустить запрос

В beforeEach общий измерительный, я, таким образом, должен справиться с этим, иначе я получаю Неожиданный запрос: GET/бла/запросы/generateJson/что-то Нет больше запрос не ожидал

Я добавил $ httpBackend.when ("GET », // generateJson /(.+)/) ответить(). перед расширением. $ digest(); в тесте перед каждым. Теперь ошибка изменяется в

Ошибка: промываться запросы: 1

Добавление $ httpBackend.flush();

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

Ошибка: Нет ожидающий запрос не смывать!

Как я могу справиться с этим? Я просто хочу, чтобы этот тест полностью игнорировал GET, присутствует ли он или нет. Могу ли я каким-то образом определить, был ли запущен GET, и так реагировать на флеш?

ответ

0

Вы можете проверить, что не было сделано никаких звонков в $httpBackend с использованием метода verifyNoOutstandingRequest(). Вы также можете проверить, что любые ожидаемые вызовы на бэкэнд были успешными с помощью метода verifyNoOutstandingExpectation(). Таким образом, вы код будет выглядеть примерно так:

Более подробную информацию можно найти на странице $httpBackenddocs. Кроме того, ознакомьтесь с обсуждением this на GitHUb.