RSpec:如何设置控制器的实例变量

2024-01-09

我的 Rails 控制器中有一个这个方法:

def some_init_func
  # ...
  @inst_var = 1
  # ...
end

以及稍后:

do_something_with(@inst_var)

如何在 RSpec 中设置此实例变量?

allow(controller).to receive(:some_init_func) do
  # ???? what goes here ????
end

assign是一个可用于视图测试的 RSpec 方法,但不支持控制器测试。控制器通常期望set实例变量,因此 RSpec 不允许设置它们,但它确实允许检查它们(即通过assigns).

不过,为了回答你的问题,Ruby 有一个instance_variable_set方法适用于所有对象,您可以从控制器测试中调用该方法,如下所示:

controller.instance_variable_set(:@inst_var, 1)

See http://ruby-doc.org/core-2.2.2/Object.html#method-i-instance_variable_set http://ruby-doc.org/core-2.2.2/Object.html#method-i-instance_variable_set获取文档,并注意半开玩笑的解释。

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

RSpec:如何设置控制器的实例变量 的相关文章

随机推荐

  • sqlalchemy、postgresql 和关系陷入“事务中空闲”状态

    我有一个与 sqlalchemy 和 postgresql 相关的问题 class Profile Base roles relationship Role secondary role profiles backref profiles
  • 在 Windows 中检查端口可用性的 VBS 脚本

    我正在尝试检查某个软件的先决条件 我有一组脚本来检查并检查磁盘空间 内存可用性等内容 我需要创建一个脚本来检查某些端口是否打开且可访问 我正在使用 WMI 检查其他网络配置项 但找不到任何检查端口可用性的参考 任何人都知道我可以在哪里找到
  • 如何在正方形中显示图像的特定部分

    我在反应本机中的图像组件有问题 我想在某个正方形中显示图像的特定部分 F e 假设我的图像分辨率为 1280x720 private someImage require Assets someImage jpg 我想以方形组件显示此图像 大
  • 如果从电子邮件中单击链接,则引用 URL

    我有一个用户注册过程 其中我向用户发送一封电子邮件以进行电子邮件验证并激活他们的帐户 现在当activate link单击电子邮件中的链接后 如何获取引荐来源网址来告诉我用户是否通过单击电子邮件中的链接来到该页面 在生成电子邮件之前 您需要
  • 您可能需要一个适当的加载器来处理此文件类型上传图像文件

    我在react babel webpack 中使用图像文件 但它显示一个错误 ERROR in public assets scissors png Module parse failed home rohit Desktop game p
  • 如何强制 Maven 使用 maven-install-plugin 版本 2.5?

    我想使用 maven install plugin 将一些 jar 安装到我的本地 Maven 存储库中 我的maven 3 2 1安装使用这个插件的2 4版本 它需要指定很多参数 我想使用需要较少参数的 2 5 版本 如上所述http m
  • scala 中的 Hello World 有什么问题?

    我在学习scala来自 docs scala lang org 有一个example https docs scala lang org overviews scala book hello world 2 html object Hell
  • 一个月中的周数

    我有以下代码 NSDate dateNow NSDate alloc init NSTimeInterval timeDifference usersDate timeIntervalSinceDate dateNow Get the sy
  • Postgres 选择当前小时数据

    我有一个带有表 token 的 postgres 数据库 它有 token id 及其生成时间 token id generated time 196618 2016 10 15 01 02 48 963 196619 2016 10 15
  • PostgreSQL 9.4.2 中“CREATE TRIGGER”使用什么锁(如果有)

    根据Postgres XL http files postgres xl org documentation explicit locking html CREATE TRIGGER使用SHARE ROW EXCLUSIVE锁定 但根据Po
  • 数据表类型错误:c 未定义

    我尝试使用 jQuery DataTables 但出现错误 类型错误 c 未定义 我不知道我的代码有什么问题 因为我可以看到 JSON 正确检索并且格式也正确 但我不知道我收到上述错误有什么问题 我的 JSON Data LOGIN 101
  • 消除宝石错误

    我有使用 RVM 的 2 个版本的红宝石 我正在尝试删除此红宝石中的所有宝石version 1 8 7 p302 首先我尝试了这个 但出现错误 gem list cut d f1 xargs gem uninstall aIx Succes
  • airflow.exceptions.AirflowException:在 DAG 中检测到循环。任务错误

    我正在运行气流管道 但代码看起来不错 但实际上我收到了airflow exceptions AirflowException 在 DAG 中检测到循环 错误任务 你能帮忙解决这个问题吗 发生这种情况的原因是多个任务中有重复的 task id
  • C语言中如何将线程分配给不同的核心?

    我创建了一个程序 使用 4 个线程对 8 个数字进行加法 然后计算结果的乘积 如何确保每个线程使用单独的核心以获得最大性能提升 我是 pthreads 新手 所以我真的不知道如何正确使用它 请提供尽可能简单的答案 My code inclu
  • 如何获取我的表单父级窗口的当前标题?

    我有一个 WinForm 应用程序 它是其他进程 例如 Google Chrome 的 Windows 的父级 我使用以下代码将 Windows 设为我的表单的父级 使用返回的句柄 Process MainWindowHandle 我正在努
  • Winforms UI 单元测试

    我正在为我的用户控件编写一个测试用例 它将提示使用 MessageBox Show 进行用户操作 要求处理或取消操作 我如何设计我的单元测试来模仿用户交互以继续 我不想重构以将逻辑移至中间层 这是获得用户同意并继续进行中间层调用的简单案例
  • 将 UTF-8 编码的字符串插入 UTF-8 编码的 mysql 表失败​​,并显示“字符串值不正确”

    将 UTF 8 编码字符串插入 UTF 8 编码表会给出不正确的字符串值 PDOException SQLSTATE HY000 一般错误 1366 不正确的字符串值 xF0 x9D x84 x8E i 对于第 1 行的列 body val
  • 如何使用 python 检查 YouTube 视频是否存在?

    我有一个简单的函数 用于检查网站是否存在 def try site url request requests get url return request status code 200 问题是 对于没有视频的 YouTube 网址 仍然存
  • 让特定的插座离开房间所在的位置

    我正在尝试取消订阅套接字并使其离开他所在的房间 我知道他的socket id 为了让您更好地理解 当房间的创建者离开时 特定套接字 所有套接字应该离开 泰 要离开房间 您可以使用以下命令 socket leave roomName 如果你只
  • RSpec:如何设置控制器的实例变量

    我的 Rails 控制器中有一个这个方法 def some init func inst var 1 end 以及稍后 do something with inst var 如何在 RSpec 中设置此实例变量 allow controll