Rou*_*oon 20 user-agent specifications rspec ruby-on-rails request
在我的助手模块中,我有:
def abc(url)
...
if request.env['HTTP_USER_AGENT']
do something
end
end
Run Code Online (Sandbox Code Playgroud)
在我的spec文件中,我有:
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
Run Code Online (Sandbox Code Playgroud)
当我运行规范时,我有这个错误:
undefined local variable or method `request' for <ObjectWithDocHelperMixedIn:0x00000103b5a7d0>
Run Code Online (Sandbox Code Playgroud)
如何在我的规范中存根request.env ['...']?
谢谢.
apn*_*ing 11
好吧,你几乎无事可做:
before(:each) do
@meth = :abc
request.env['HTTP_USER_AGENT'] = "..."
end
Run Code Online (Sandbox Code Playgroud)
我刚刚给了另一个尝试,这传递了:
#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
Run Code Online (Sandbox Code Playgroud)
您可以通过执行以下操作覆盖请求env中的用户代理集.
before(:each) do
@meth = :abc
helper.request.user_agent = 'something else'
end
Run Code Online (Sandbox Code Playgroud)
然后,在您的规范中:
it "does stuff" do
expect(helper.send(@meth, "some_url")).to # ...
end
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12149 次 |
最近记录: |