如何在我的 RSpec 中设置 request.referrer? [英] How do i set a request.referrer inside my RSpec?
本文介绍了如何在我的 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屋!
查看全文