【问题标题】:Ruby on Rails: Mock session variable in helper classRuby on Rails:帮助类中的模拟会话变量
【发布时间】:2012-04-17 22:06:00
【问题描述】:

我正在尝试在控制器的帮助文件中模拟会话哈希:

Helper_Spec:

session.stub!(:[]).with("fb_token")
  RotaHelper.getListOfFriends.should == expected_friends

助手:

FbGraph::User.me(session["fb_token"]).friends

错误:

NameError:
   undefined local variable or method `session' for RotaHelper:Module

我是否错误地存根?或者助手没有访问会话哈希的权限?

【问题讨论】:

  • 我对助手没有太多经验,我认为从助手访问会话不是一个好主意。据我所知,助手仅用于“视图”。
  • 我想我发现了问题所在:我认为您无法从帮助程序访问会话变量-我猜是因为它不继承 ApplicationController。我可能错了……有什么意见吗?

标签: ruby-on-rails session rspec mocking


【解决方案1】:

这很奇怪。在我的助手测试中,会自动创建一个会话哈希。也许您不需要 spec_helper?

顺便说一句,如果会话不是由规范助手自动创建的,您也可以通过说这是助手的方法来初始化它。像下面的代码:

session_hash = {}
helper.stub!(:session) { session_hash }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-22
    • 2017-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-25
    • 1970-01-01
    相关资源
    最近更新 更多