ruby-on-rails – 如何在Rails集成测试中设置会话变量
发布时间:2020-12-16 19:11:34 所属栏目:百科 来源:网络整理
导读:在Rails集成测试中,如何设置会话变量(在我的情况下为:user_id)? 显然,它不是一个完整的集成测试,但鉴于在我的应用程序中用户身份验证不能在没有手动用户交互的情况下发生,我可以以某种方式解决并手动设置会话变量吗? 尝试了以下内容:“session”在该范围
在Rails集成测试中,如何设置会话变量(在我的情况下为:user_id)?
显然,它不是一个完整的集成测试,但鉴于在我的应用程序中用户身份验证不能在没有手动用户交互的情况下发生,我可以以某种方式解决并手动设置会话变量吗? 尝试了以下内容:“session”在该范围内不可用,open_session返回一个我没有找到更新方法的会话. 解决方法
据我所知,你做不到.集成测试中的会话值
(在轨道3.2.2中)是一份副本. (Rails众神:如果我是,请纠正我 错误.)您可以设置值,但不会影响下一个获取/发布 因为它是真实会话的本地副本.非常适合断言测试, 在集成测试期间保持状态不是很好. 我有一个测试控制器来支持我通过Evergreen进行的JavaScript测试. 我的解决方案是为我的测试控制器添加一个方法和一个可用的路由 基本上我的app_test #set_session方法会屏蔽参数名称 params.each() do |key,value| next if ( key !~ /^set_session_/) session[ key.slice( ("set_session_".size())..-1).to_sym ] = value end # don't forget to render something/anything 因此,要在集成测试期间设置会话变量,我有一个小的 prefix = "set_session_" post( "/set_session.html",{ (prefix + "user_id") => "My Name Is Mudd" } ) 不像“session [:user_id] =’我的名字是Mudd’”那么漂亮,但它确实有效. 这很容易扩展为传递整数,符号等,当然,可以一次设置多个会话键/值对.不漂亮,但是不错. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |