我正在试图弄清楚如何运行基于故事的集成测试以及在“故事”中出现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重定向?
答案 0 :(得分:0)
如果没有重定向,当然你将无法(成功)测试它。因此,请测试您正在做的事情:您希望响应为200
,并且正文为Javascript代码段。或者也可以使用assert_template
。
如果你想测试你的Javascript-Login-Button是否真的摧毁了js主体以及浏览器对它的反应,你必须使用像Selenium这样的东西。