Ruby
发布时间:2022-04-03 发布网站:大佬教程 code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ruby-on-rails – 如何仅测试我被重定向到的URL的一部分(使用assert_redirected_to)?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的Rails应用程序的功能测试中,我想测试我被重定向到哪里.预期的URL指向外部资源(这意味着它不属于我的应用程序).
@H_
673_2@网址如下所示:
https://my.ur
l.com/foo?bar1=xyz\u0026amp;bar2=123
@H_
673_2@不幸的是,
我无法预测参数,因为它们是由外部资源生成的.
但是,URL的其余部分总是保持不变:
https://my.ur
l.com/foo
@H_
673_2@我通常使用assert_redirected_to进行这种测试,但是这样会预期整个URL包括参数.
@H_
673_2@任何人都可以想到另一种方式来测试重定向,但是只能检查URL的第一部分,而没有参数?
@H_
673_2@(该URL不在分配哈希中)
@H_
673_2@*(我对应用程序进行API调用,哪个响应与URL我将redirect_to)
解决方法
http请求命令(如post,get等)在调用*时创建一个名为@response的实例变量. @response本身包含一个名为redirect_url的方法,该方法存储您被重定向到的URL(如果您真的被重定向了).
@H_
673_2@因此,我可以使用一个正常的assert_match来将正则表达式与@ response.redirect_url进行比较:
post :my_action_to_test
assert_response :redirect
assert_match /https:\/\/my.url.com\/foo/,@response.redirect_url
@H_
673_2@*(实际上,这些
http方法
只使用私有方法
process
,它创建了@response变量).
大佬总结
以上是大佬教程为你收集整理的ruby-on-rails – 如何仅测试我被重定向到的URL的一部分(使用assert_redirected_to)?全部内容,希望文章能够帮你解决ruby-on-rails – 如何仅测试我被重定向到的URL的一部分(使用assert_redirected_to)?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。