在我的助手模块中,我有:
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
当我运行spec时,我得到了这个错误:
undefined local variable or method `request' for <ObjectWithDocHelperMixedIn:0x00000103b5a7d0>
如何为request.env'...‘添加存根在我的说明书里?
谢谢。
发布于 2013-04-01 05:19:32
如果你正在使用rspec-rails,你也许能够在你的助手测试中使用controller.request
。
发布于 2012-04-13 05:53:48
嗯,你几乎没什么可做的:
before(:each) do
@meth = :abc
request.env['HTTP_USER_AGENT'] = "..."
end
我只是再试一次,它通过了:
#in helper
def foo
request.env['HTTP_USER_AGENT']
end
#spec
it "foo" do
helper.request.env['HTTP_USER_AGENT'] = 'foo'
expect(helper.foo).to eq 'foo'
end
发布于 2013-04-06 10:20:08
您可以通过执行以下操作覆盖请求环境中的user-agent设置。
before(:each) do
@meth = :abc
helper.request.user_agent = 'something else'
end
然后,在您的规范中:
it "does stuff" do
expect(helper.send(@meth, "some_url")).to # ...
end
https://stackoverflow.com/questions/10132363
复制相似问题