Как бороться с перенаправлениями AJAX при тестировании истории интеграции с Rails? - PullRequest
0 голосов
/ 23 января 2011

Я пытаюсь выяснить, как запускать интеграционные тесты, основанные на истории, и где перенаправления AJAX появляются во время «истории».

Пример простого входа: я захожу на сайт, используя

def user.logs_in(email, pwd)
    get root_path

    assert_response :success
    assert_template 'index'

    post :post, session_path, :email => email, :pwd => pwd

    assert_response :redirect
    assert_redirect_to backend_path

    follow_redirect!

    assert_response :success
    assert_template 'index'
    assert session[:user_id]
  end

К сожалению, процесс входа в систему основан на AJAX и использует 301-перенаправление, которое возвращает

document.location.href = "<%= backend_path >";

, что возвращает 200-значный код, означающий, что

assert_response :redirect

завершится неудачей.1012 *

Как я могу обработать перенаправления AJAX в моих интеграционных тестах?

1 Ответ

0 голосов
/ 24 августа 2011

Если нет перенаправления, конечно, вы не сможете (успешно) проверить его.Поэтому вместо этого проверьте, что вы делаете: вы хотите, чтобы ответ был 200, а тело - фрагментом Javascript.Или просто используйте assert_template тоже.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...