我正在使用 rspec 1.3.2 来测试一个看起来像这样的控制器操作:
def action_foo
...
@bar.can_do_something?
...
end
我正在尝试存根@bar
(假设它是 class 的一个实例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)