如何在我的 RSpec 中设置 request.referrer? [英] How do i set a request.referrer inside my RSpec?

查看:34
本文介绍了如何在我的 RSpec 中设置 request.referrer?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am trying to avoid using my session[:referred_by], and would like to use the request.referrer. However, my RSpec tests fail because the TestRequest does not store a request.referrer

所以我必须执行以下操作才能使 Rspec 测试正常工作.有没有办法让它变得更好:

So I have to do the following in order for Rspec tests to work. Is there a way to make it better:

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

推荐答案

Mock it:

specify 'foo' do
  controller.request.should_receive(:referer).and_return('http://example.com')
  # get whatever
end

或者如果您不在乎它是否被调用,则存根:

Or if you don't care if it doesn't get called, stub it:

controller.request.stub referer: 'http://example.com'

这篇关于如何在我的 RSpec 中设置 request.referrer?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆