如何在测试期间在 Helper 中存根函数

2024-03-22

看看这个辅助函数:

def show_welcome_banner?
  (controller_name == 'competition' && action_name == 'index') ||
  (controller_name == 'submissions' && action_name == 'show')
end

它期望定义controller_name 和action_name 函数。

我尝试在我的 RSpec 匹配器中使用它:

describe PageHelper do
  it "should know when the welcome banner is to be shown" do
    helper.stub!(:controller_name).and_return('index')
    show_welcome_banner?.should == false
  end
end

但这不会真正起作用。

我如何在助手内部存根函数?也许使用instance_eval? 谢谢!

EDIT, 尝试使用

controller.stub!(:controller_name).and_return('index')

but got

  1) PageHelper should know when the welcome banner is to be shown
     Failure/Error: show_welcome_banner?.should == false
     NameError:
       undefined local variable or method `controller_name' for #<RSpec::Core::ExampleGroup::Nested_1:0x1059a10b8>
     # ./app/helpers/page_helper.rb:16:in `show_welcome_banner?'
     # ./spec/helpers/page_helper_spec.rb:7

助手已放入规范/helper/page_helper_spec.rb..


你有没有尝试过

stub!(:controller_name).and_return('index')

似乎对我有用:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在测试期间在 Helper 中存根函数 的相关文章

  • Ruby on Rails REST 设计问题 - 在账户之间转账

    我有一个 Account 类 想要实现转账屏幕以允许用户在 2 个账户之间转账 我将如何实现这种 RESTful 方式 我有标准帐户和休息操作 那很好 但我该如何实现转移呢 通常我只会向帐户控制器和相应的视图添加一个名为 transfer
  • 在 ec2 上托管 Rails

    我想将 Rails 部署到亚马逊 ec2 上 我看过 poolparty 和 ec2onrails 但似乎都不再维护了 人们用什么来做到这一点 都是自制的木偶和卡皮斯特拉诺 还是有一个项目可以让我继续下去 我可以推荐两个项目 如果您有一个
  • 目前最流行的 Ruby on Rails AUTHORIZATION gem/plugin 是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在 Rails 4 中使用 params.require

    我有一个像这样的私有方法 用于有四个字段的注册表单 firstname email password and confirm password 我不知道如何检查password confirmation def user params pa
  • 遵循 http://ruby.railstutorial.org/ 教程时出现 RSpec 错误

    我到处搜索但似乎找不到解决方案 我一直在关注有关的教程http ruby railstutorial org http ruby railstutorial org 我在第 3 章中尝试使用 rspec spec 执行测试 但是我不断收到以
  • Heroku 部署错误

    在 Windows 环境中 尝试部署到 Heroku 时出现以下错误 C Ruby lib ruby gems 1 8 gems heroku 1 9 13 lib heroku commands base rb 32 in 没有这样的文件
  • 如何使用 Rspec 测试具有嵌套路由的控制器?

    我有 2 个使用轨道脚手架生成器创建的控制器 我希望它们嵌套在一个名为 demo 的文件夹中 所以运行 rails g scaffold demo flows rails g scaffold demo nodes 然后我决定将节点嵌套在流
  • 我在 Rails 中使用了保留字吗?

    这是我的模型 class Record lt ActiveRecord Base belongs to user belongs to directory end class Directory lt ActiveRecord Base h
  • 在 Rails 3 中渲染 Markdown 文本

    我想将 markdown 转换为 html 在我看来我有markdown some text variable 但我得到了错误undefined method markdown I added require BlueCoth 到envir
  • 即使在急切加载之后,belongs_to 关联也会单独加载

    我有以下关联 class Picture lt ActiveRecord Base belongs to user end class User lt ActiveRecord Base has many pictures end 在我的
  • rvm gem 安装错误?

    我正在摆弄 ruby gems 和 rvm 它工作得很好 但现在当我尝试安装 gem 时出现错误 gem install Rails错误 同时 执行 gem Errno EACCES 权限被拒绝 Users da rvm gems ruby
  • 使用 rspec 测试嵌套路由

    我正在尝试使用 rspec 测试路由 以下给出了 预期块返回真值 的错误 我不确定我错过了什么 通过浏览器我可以发布到这个网址并且成功 有任何想法吗 谢谢 Routes resources forum topics do resources
  • ruby从1.8.7升级到1.9.2(使用Rails 3.1.1)后本地服务器错误

    我刚刚安装了rvm并使用rvm将ruby从1 8 7升级到1 9 2 我在我的应用程序上运行了捆绑安装 它重新安装了我的 gems 当我在本地运行 Rails 服务器并将浏览器导航到 localhost 3000 时 服务器日志中显示以下错
  • Ruby/Rails 集合到集合

    我有两个表与一个连接表连接 这只是伪代码 Library Book LibraryBooks 我需要做的是 如果我有一个图书馆的 id 我想获取该图书馆拥有的所有书籍所在的所有图书馆 因此 如果我有图书馆 1 图书馆 1 中有书籍 A 和
  • 如何为 ApplicationController 中 after_action 过滤器中的所有操作渲染 json?

    是否可以在 Rails ApplicationController 中创建一个 after filter 方法 该方法在每个操作上运行并呈现为 JSON 我正在构建一个 API 并且希望将控制器中的每个操作的输出呈现为 JSON 客户控制器
  • RoR - Rails 中的大文件上传

    我有一个 Rails Web 应用程序 允许用户上传视频 视频存储在 NFS 安装的目录中 当前的设置适用于较小的文件 但我也需要支持大文件上传 最多 4GB 当我尝试上传 4GB 文件时 它最终会发生 但从用户体验的角度来看很糟糕 上传开
  • 服务器上的 Rails 会话

    我想让一些 Rails 应用程序在不同的服务器上共享同一个会话 我可以在同一服务器内完成此操作 但不知道是否可以在不同服务器上共享 有人已经做过或者知道怎么做吗 Thanks Use the 数据库会话存储 https github com
  • 如何在 Ruby 2.2 上删除不安全密码来强化 Rails+webrick+https

    更新 首先 我的测试代码没有充分显示 ruby 2 4 看到 SSLCiphers 选项 而 ruby 2 2 没有 我编辑了下面的示例代码以清楚地表明这一点 更新 由于我的问题未能得到社区的任何帮助 我继续前进 两天后找到了解决方案 我将
  • Heroku Rails 应用程序级别不记录日志

    我在 Heroku 上有一个 Rails 应用程序 它没有在应用程序级别进行日志记录 当前版本 红宝石1 9 3 导轨3 1 3 在 config environment development rb 中有以下几行 config logge
  • 让 Rails 生产在端口 80 上运行

    我正在尝试让我的 Rails 应用程序在生产模式下运行 但遇到了一些困难 我正在使用 Passenger 和 apache 并运行 Ubuntu 12 04 我已经配置和创建了生产数据库 并设置了乘客 状态如下 rvmsudo passen

随机推荐

  • 如何在android应用程序中从twitter获取用户信息?

    我正在将 Twitter 集成到我的 Android 应用程序中 我可以为用户授权该应用程序 现在 我正在寻找一个 API 它可以为我提供登录用户的信息 如名字 姓氏 电子邮件等 我已经为 Facebook 做了这个 facebook re
  • Java中如何查找未关闭的I/O资源?

    Java 中的许多 I O 资源 例如 InputStream 和 OutputStream 在使用完毕后需要关闭 如前所述here http www coderanch com t 202922 Performance java Uncl
  • Matlab中如何imwarp转点?

    我正在使用 Matlab 将图像转换为目标图像 我有几何变换 tform 例如这是我的 tform 1 0235 0 0022 0 0607 0 0 0276 1 0002 0 0089 0 0 0170 0 0141 1 1685 0 1
  • 如何将 openssl-sys 箱静态链接到共享库?

    我正在使用一个依赖于的库openssl 系统 https github com sfackler rust openssl 根据文档 如果我指定OPENSSL STATIC 1作为环境变量 OpenSSL 将静态链接到共享库输出中 Due
  • WinForms 多线程:仅当前一个更新完成时才执行 GUI 更新

    我有带有一些后台处理的多线程应用程序 它有长时间运行的 UI 更新 在 UI 线程本身上 它们是通过众所周知的从后台线程调用的MSDN 上的资源 http msdn microsoft com en us library 757y83z4
  • 用颜色填充图像但保留 Alpha(PIL 中的颜色叠加)

    基本上 我正在尝试创建一个函数来获取给定的图像和颜色 对于图像中的每个像素 它将保留原始 alpha 值 但会将颜色更改为给定的颜色 例如 如果函数获取下面的箭头图像和红色 它将输出以下图像 在 Photoshop 和其他图像编辑器中 这种
  • 从函数创建矩阵

    我想从函数创建一个矩阵 这样 3 3 如果行索引小于给定阈值 k 则矩阵 C 的值等于 1 import numpy as np k 3 C np fromfunction lambda i j 1 if i lt k else 0 3 3
  • “NSPercientContainer”仅在 iOS 10.0 或更高版本上可用

    我是 iOS 应用程序开发新手 我开发了一个应用程序 在用户登录时显示一个网站 它适用于设置为 10 1 的部署目标 为了使其与 IOS 8 兼容 我尝试将部署目标设置为 8 因为我遇到了以下错误 NSPersistentContainer
  • 控制线段

    这是一个简单的问题 我一直在成功使用 d3 svg line 生成器 但我现在需要能够对整条线中的每个单独段进行更多控制 例如 每个部分可能需要不同的颜色 或者每个片段甚至可能需要不同的厚度 根据相邻片段的厚度逐渐变细或变细 我想知道实现这
  • TFS 中的搁置是什么?

    在 TFS 中搁置仅仅是一种软签入 以便其他团队成员可以看到源代码吗 即搁置的代码不会被编译 对吗 货架有很多用途 主要有 上下文切换 保存当前任务的工作 以便您可以切换到另一个高优先级任务 假设您正在开发一项新功能 只顾自己的事 这时您的
  • 什么是 := 运算符?

    在某些编程语言中 我看到 例如 x y 这是什么 运算符通常被称为 它有什么作用 在所有支持运算符的语言中 这意味着分配 在支持运算符的语言中 the 运算符通常表示相等比较 在语言中 意味着赋值 通常用于相等比较 does mean 我不
  • javascript:动态更改名称属性

    我正在处理这个脚本 它没有错误 但我想在上面添加一些功能 就像当我单击它添加的按钮时一样 但我希望输入文本的名称属性也被更改 这是我的脚本 javascript var a 1 function add var fContent docum
  • 有没有办法使用 Selenium Webdriver (firefox) 记录 http 请求/响应?

    有没有办法使用 Selenium Webdriver firefox 记录 http 请求 响应 我想可以通过代理驱动网络流量并记录它 但也许有更简单的 内部 硒解决方案 在 selenium 频道上问了这个问题 您将需要代理它来捕获请求
  • Android Intent:发送带有附件的电子邮件

    我想通过电子邮件发送多个文件 我找到了这个Android 使用 Intent 实现多个电子邮件附件 https stackoverflow com questions 2264622 android multiple email attac
  • 打印从根节点到叶节点的所有路径 - javascript

    function formCategoryTrees object each object function objectValues var leafCategoryId objectValues id var leafCategoryN
  • 什么是SOA(面向服务的架构)?

    如果你愿意的话 可以叫我巨魔 但我是认真的 新的 SOA 趋势与我 15 年前构建的客户端服务架构究竟有何不同 我一直听到 SOA 但我不明白它与我们一直以来所做的有什么不同 早在 10 年前 我的公司就有多个客户 使用多种语言 使用相同的
  • Visual Studio 中的递归

    当我运行这个非常简单的递归代码时 我发现当函数 recursCheck 使用整数参数时 我的内存在 Win32 模式下跳到 200 MB 在 x64 模式下跳到 45 MB 并且当参数的类型为 short Win32 模式使用的内存为 4
  • cx_Oracle - DLL 加载失败

    我在使用 Python 导入 cx Oracle 时遇到问题 我知道这里已经讨论了 cx Oracle 的很多问题 但在阅读所有相关主题后 我似乎找不到解决我的问题的方法 我有两台机器 一台是我的计算机 另一台是远程工作站 它们具有相似的配
  • SQLDependency -- 无效的 SQL

    我能看出的最好的here http msdn microsoft com en us library ms181122 28SQL 105 29 aspx 我没有违反此查询的任何规则 但更改事件不断触发 状态无效 SELECT COUNT
  • 如何在测试期间在 Helper 中存根函数

    看看这个辅助函数 def show welcome banner controller name competition action name index controller name submissions action name s