控制器规范中的 RSpec 存根辅助方法 [英] RSpec stub helper method in controller spec

查看:34
本文介绍了控制器规范中的 RSpec 存根辅助方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Found similar questions but surprisingly none, that I've found, give a simple answer...

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

Trying to stub a helper method in my controller spec; not quite sure what object would need to be doubled?

控制器调用这个方法:

#app/helpers/sessions_helper.rb

def signed_in?
  current_user.present?
end

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

I'd like to stub it in spec to return true/false.

推荐答案

您可以从控制器规范中提取它:

You can stub it from the controller spec:

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

对象控制器"是在控制器规范中预定义的.

Object 'controller' is predefined in a controller specs.

更新:

使用 RSpec 3 语法:

With RSpec 3 syntax:

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

感谢@jakeonrails 的提醒.

Thanks to @jakeonrails for reminding.

这篇关于控制器规范中的 RSpec 存根辅助方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆