2011-01-22 23 views
0

我想弄清楚如何运行基于故事的集成测试,以及AJAX重定向在“故事”期间出现的位置。如何在进行Rails集成故事测试时处理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和insted的一个网站的301重定向返回

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

这给回200-代码含义

assert_response :redirect 

失败。

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

回答

0

如果没有重定向,当然你将无法(成功)测试它。所以,而不是测试你在做什么:你想要的响应是一个200和身体是一个JavaScript片段。或者也可以使用assert_template

如果你想测试你的Javascript登录按钮是否真的发生了JS身体以及浏览器如何反应,你将不得不使用类似Selenium的东西。

相关问题