ruby-on-rails - Rspec:如何在辅助规范中指定 request.env?

标签 ruby-on-rails rspec request user-agent specifications

在我的帮助模块中,我有:

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/

相关文章:

ruby-on-rails - 使用 capybara 断言通过 ajax 发生的事情

ruby-on-rails - Eval() 与表达式树

ruby-on-rails - Rails link_to 从 Controller 操作更新属性

ruby - 如何在不同配置下运行 rspec 测试

ruby-on-rails - 在 Rails 3 项目中添加自定义目录(源和规范)以进行自动测试

java - JSP 为 request.getParameter() 返回 null,但在 EL 中显示值

javascript - 向服务器查询文件

python - 导入错误: No module named request Twitter API

ruby-on-rails - 使用 RSpec/FactoryGirl 设置嵌套关联的最佳方法

ruby-on-rails - 如何强制 RSpec 测试失败?