Как проверить AJAX с Ruby on Rails? - PullRequest
3 голосов
/ 06 февраля 2012

Может кто-нибудь дать совет, как протестировать AJAX в Ruby on Rails?Например: я нажимаю на кнопку, запрос идет к TestController # new, и в этом методе у нас есть response_with (@test) и new.js.erb, где html форма.Хорошо, я могу нажать на эту ссылку / кнопку, запрос xhr будет работать, но я не получаю ответов, которые мне нужно проверить.

Может ли какой-нибудь орган помочь с этим, пожалуйста?Я использую Rspec.

Ответы [ 3 ]

6 голосов
/ 05 июня 2015

В Rails 4.2 для отправки ajax-запроса установите необязательный аргумент хеша с ключом "xhr: true" для вызова методов get, post, patch, put или delete Например:

get users_path + '?page=2', xhr: true

, а затем используйте assert_select для проверки некоторых элементов HTML на обновленной странице.

6 голосов
/ 06 февраля 2012

Вы должны использовать капибару и селен.Посмотрите на этот великий Railscast .

1 голос
/ 06 февраля 2012

В зависимости от того, что есть в вашем Ajax-запросе, на самом деле лучше всего протестировать его на нескольких уровнях.

Проверьте реакцию вашего контроллера с помощью теста контроллера.

Проверьте ваш JS правильно, имея дело с этим ответом, с помощью чистого JS-фреймворка, такого как jasmine.

Проверьте ваш поток через приложение с помощью чего-то вроде огурца или интеграционной rspec (с помощью капибары / селена).

...