Dan*_*sch 16 ruby testing ruby-on-rails
在我的Rails应用程序的功能测试中,我想测试我被重定向到的位置.预期的URL指向外部资源(这意味着它不是我的应用程序的一部分).
URL如下所示: https://my.url.com/foo?bar1=xyz&bar2=123
遗憾的是我无法预测参数,因为它们是由外部资源生成的.*
但是,URL的其余部分始终保持不变:https://my.url.com/foo
我通常assert_redirected_to用于这种测试,但这需要整个URL,包括参数.
谁能想到另一种测试重定向的方法,但只检查没有参数的URL的第一部分?
(URL不在assigns哈希中)
*(我对应用程序进行API调用,该应用程序使用我将重定向的URL进行响应)
Dan*_*sch 20
http请求命令,如post,get等创建称为一个实例变量@response被调用时*.@response本身包含一个方法redirect_url,用于存储您重定向到的URL(如果您真的被重定向).
因此,我可以使用法线assert_match来比较正则表达式@response.redirect_url:
post :my_action_to_test
assert_response :redirect
assert_match /https:\/\/my.url.com\/foo/, @response.redirect_url
Run Code Online (Sandbox Code Playgroud)
*(实际上,这些http方法只使用私有方法process,它创建@response变量).
| 归档时间: |
|
| 查看次数: |
4169 次 |
| 最近记录: |