【发布时间】:2013-01-16 15:39:36
【问题描述】:
我正在使用 rspec 1.3.2 来测试一个看起来像这样的控制器操作:
def action_foo
...
@bar.can_do_something?
...
end
我正在尝试存根 @bar(假设它是类 Bar 的一个实例)实例变量,但我无法做到。我想如果我可以访问any_instance,那么我可以使用Bar.any_instance.stub(:can_do_something?),但这在我正在使用的 rspec 版本中不可用。
还有其他方法可以访问和存根@bar吗?以下方法均无效:
@bar.stub(:can_do_something?)
controller.instance_variable_get("@bar").stub(:can_do_something?)
controller.stub_chain(:bar, :can_do_something?)
Bar.new.stub(:can_do_something?)
编辑:
@bar 在before_filter 中分配。类似@bar = Bar.find(n)
【问题讨论】:
-
@bar在哪里/如何实例化? -
@bar在before_filter中分配
标签: ruby-on-rails ruby rspec tdd