如何将变量添加到全局范围? (红宝石在铁轨上)

时间:2011-09-28 14:29:43

标签: ruby-on-rails ruby

所以,我正在尝试进行一些单元测试,并且在运行测试时我的current_account_permissions变量未定义。 (在服务器运行时工作正常)。

它类似于current_user,因为除了测试之外,它在任何地方都可用。

有没有办法可以将变量添加到全局范围?

可能类似于ENV["current_account_permissions"] = whatever,但不必使用ENV[]表示法来检索变量?

1 个答案:

答案 0 :(得分:1)

我在这里假设,但没有任何代码,很难说,current_account_permissions混入了ApplicationController

我还假设current_account_permissions是一种方法,应该做类似

的方法
def current_account_permissions
  @current_account_permissions ||= current_user.get_current_account_permissions
end

因此,如果是这种情况,那么所有的控制器测试都可以正常运行。但是,在视图测试中,您必须存根current_account_permissions,因为在测试时没有控制器上下文。

希望这有帮助。