【问题标题】:How to deal with AJAX redirects when doing Rails integration story tests?在进行 Rails 集成故事测试时如何处理 AJAX 重定向?
【发布时间】:2011-01-22 23:00:29
【问题描述】:

我正在尝试弄清楚如何运行基于故事的集成测试以及在“故事”期间出现 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

失败。

如何在集成测试中处理 AJAX 重定向?

【问题讨论】:

    标签: ruby-on-rails ajax redirect integration-testing


    【解决方案1】:

    如果没有重定向,当然您将无法(成功)对其进行测试。所以改为测试你在做什么:你希望响应是200,正文是 Javascript sn-p。或者也使用assert_template

    如果您想测试您的 Javascript-Login-Button 是否真正评估 js 主体以及浏览器如何响应,您将不得不使用 Selenium 之类的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-30
      相关资源
      最近更新 更多