ruby-on-rails - 我如何在我的 RSpec 中设置 request.referrer?

标签 ruby-on-rails ruby rspec

我试图避免使用我的session[:referred_by],而想使用request.referrer。但是,我的 RSpec 测试失败了,因为 TestRequest 没有存储 request.referrer

因此,为了使 Rspec 测试正常工作,我必须执行以下操作。有没有办法让它变得更好:

referrer = request.referrer ? request.referrer : '/'
redirect_to referrer, :alert => error_message

最佳答案

ActionDispatch::TestRequest 扩展了 ActionDispatch::Request,它扩展了 Rack::Request

方法定义如下

def referer
  @env['HTTP_REFERER']
end
alias referrer referer

据我所知,您可以使用 request.env 访问 RSpec 测试中的环境变量。这意味着,应该可以设置类似

request.env['HTTP_REFERER'] = 'http://example.com'

当然,这取决于您使用的 RSpec 示例组的类型。

关于ruby-on-rails - 我如何在我的 RSpec 中设置 request.referrer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12591763/

相关文章:

mysql - rails 和 RSpec : test DB with preexisting records

ruby-on-rails - 保存后回形针重命名文件

ruby-on-rails - Linux、Rails、Mono C#、No-SQL 设置

ruby-on-rails - Ruby `require` 在 rails lib 中找不到我的文件

ruby-on-rails - 由 Yard 和西类牙口音生成的文档

mysql - Rails 测试数据库比开发数据库快 10 倍

ruby-on-rails - 为什么我的字符串在使用 .to_i 而不是整数时转换为 Fixnum?

ruby-on-rails - 在没有 SQL 复制的情况下保持表在 Rails 应用程序之间同步?

javascript - Chartkick gem 可以用来制作高级时间线图表吗?

ruby-on-rails - 加速 RSpec 请求规范的方法