ruby-on-rails – 如何仅测试我被重定向到的URL的一部分(使用ass
发布时间:2020-12-16 21:50:23 所属栏目:百科 来源:网络整理
导读:在我的Rails应用程序的功能测试中,我想测试我被重定向到哪里.预期的URL指向外部资源(这意味着它不属于我的应用程序). 网址如下所示:https://my.url.com/foo?bar1=xyzu0026amp;bar2=123 不幸的是,我无法预测参数,因为它们是由外部资源生成的. 但是,URL的其
在我的Rails应用程序的功能测试中,我想测试我被重定向到哪里.预期的URL指向外部资源(这意味着它不属于我的应用程序).
网址如下所示:https://my.url.com/foo?bar1=xyzu0026amp;bar2=123 不幸的是,我无法预测参数,因为它们是由外部资源生成的. 我通常使用assert_redirected_to进行这种测试,但是这样会预期整个URL包括参数. 任何人都可以想到另一种方式来测试重定向,但是只能检查URL的第一部分,而没有参数? (该URL不在分配哈希中) *(我对应用程序进行API调用,哪个响应与URL我将redirect_to) 解决方法
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 *(实际上,这些http方法只使用私有方法 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |