10

发现了类似的问题,但令人惊讶的是,我发现没有,给出一个简单的答案......

试图在我的控制器规范中存根辅助方法;不太确定需要加倍的对象是什么?

控制器调用此方法:

#app/helpers/sessions_helper.rb

def signed_in?
  current_user.present?
end

我想在规范中存根它以返回真/假。

4

1 回答 1

31

您可以从控制器规范中存根它:

controller.stub!(:signed_in?).and_return(true) # emulate signed in user
controller.stub!(:signed_in?).and_return(false) # emulate unsigned user

对象“控制器”是在控制器规范中预定义的。

更新:

使用 RSpec 3 语法:

allow(controller).to receive(:signed_in?).and_return(true)
allow(controller).to receive(:signed_in?).and_return(false)

感谢@jakeonrails 的提醒。

于 2013-01-18T19:07:04.767 回答