2016-09-10 5 views
2

У меня есть интерфейс поиска с мгновенным поиском по мере ввода. Он оптимизирован для отправки запросов AJAX только тогда, когда они необходимы, поэтому я хочу проверить, правильно ли он выполняется.Как проверить, был ли отправлен запрос Ajax в Capybara Rspec?

Как проверить, был ли отправлен запрос Ajax? (любой запрос будет достаточно хорошим). Также было бы хорошо проверить, был ли запрос Ajax прерван (в другом тестовом регистре)

ответ

3

С Capybara у вас нет. Как указывает Ксавьер, Капибара сосредоточен на эмуляции пользователя. Пользователь не знает о запросах ajax и т. Д. Они просто видят результаты. Если у вас есть счетчик (или какой-либо другой визуальный элемент), который вы показываете на экране во время запроса, тогда вы можете проверить наличие этого (так как пользователь увидит его) или вы можете проверить, отображаются ли правильные результаты.

Если вместо этого вы пытаетесь проверить фактическое поведение оптимизации запросов AJAX, то вы, вероятно, захотите посмотреть на JS-тестирование с помощью чего-то вроде жасмина/жасмина-ajax.

+0

Спасибо за идею spinner, я на самом деле тускнею непрозрачность результатов, поэтому я думаю, что это сработает для меня, позвольте мне проверить! – Aurimas

2

Если вы используете jQuery, jQuery.active function отвечает на ваш вопрос.

Я уверен, что нет способа получить это с необработанным запросом XHR без какого-либо отслеживания в вашем библиотечном коде.

Как мета-точка, capybara работает лучше всего, когда вы придерживаетесь утверждения о наблюдаемом пользователем поведении. Не могли бы вы проверить, что появляются конкретные результаты поиска/предложения, а не проверка того, произошел ли запрос ajax?

+0

Я знал о jQuery.active, но почему-то это не кажется надежным. Результат после локальной фильтрации и фильтрации после AJAX может быть одинаковым (AJAX просто проверил бы на сервере, что результат на самом деле правильный, но иногда он не нужен). Хорошие моменты, хотя! – Aurimas

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