在我的帮助模块中,我有:
def abc(url)
...
if request.env['HTTP_USER_AGENT']
do something
end
end
在我的规范文件中,我有:
describe "#abc" do
before(:each) do
@meth = :abc
helper.request.env['HTTP_USER_AGENT'] = "..."
end
it "should return the webstart jnlp file" do
@obj.send(@meth, "some_url").should ....
end
end
当我运行规范时,出现此错误:
undefined local variable or method `request' for <ObjectWithDocHelperMixedIn:0x00000103b5a7d0>
如何在我的规范中为 request.env['...'] stub ?
谢谢。
最佳答案
您可以通过执行以下操作覆盖在请求环境中设置的用户代理。
before(:each) do
@meth = :abc
helper.request.user_agent = 'something else'
end
然后,在您的规范中:
it "does stuff" do
expect(helper.send(@meth, "some_url")).to # ...
end
关于ruby-on-rails - Rspec:如何在辅助规范中指定 request.env?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10132363/