rspec 集成测试中的会话对象

2024-01-24

我正在使用 rspec 和 capybara 进行集成测试。

他们是在请求规范中创建会话对象的一种方法吗?

我有一个视图页面,在其中使用会话对象来检查其值以显示选择性内容。

我面临的问题是我无法在请求规范中创建会话对象。 这是视图的示例:

<% if session[:role] == "Role" %>
---content---
<% else %>
--content--
<% end %>

在我的请求规范中

session[:role] = "Role"
visit my_path

但它向我抛出一个错误“nil:NilClass 的未定义方法‘session’”。

我还尝试研究创建水豚的会话对象。但找不到任何东西。

他们有解决办法吗?我找不到与此相关的任何内容,似乎这是不可能的。非常感谢您的一点帮助。


您应该执行请求规范的方式是访问用户通常需要访问的任何 URL,以便设置该会话变量。

除了手动设置会话 cookie 之外,我不知道还有什么其他方法。Capybara.current_session.driver.browser.set_cookie让我们这样做,但您必须手动创建 cookie 值。

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

rspec 集成测试中的会话对象 的相关文章

  • 如何以 Rails 形式将图像从 上传到具有 Rails Active Storage 的 S3?

    正如标题中所述 我正在尝试使用 Rails 的 Active Storage 从嵌套在 Rails 表单中的元素将图像上传到我的 S3 存储桶 到目前为止我已经能够使用使用 Active Storage 上传图像 这User class h
  • Rails 3 SSL 路由从 https 重定向到 http

    这个问题与此相关SO 问答 rails 3 ssl deprecation https stackoverflow com questions 3634100 rails 3 ssl deprecation建议使用routes rb和类似的
  • 升级到 Rails 6 时是否有一种编程方法可以检测 Zeitwerk::NameError?

    我目前正在将旧的 Rails 应用程序迁移到 Rails 6 好像项目中有些文件和里面定义的类不一致 运行应用程序测试时我没有看到此错误 但部署后我收到如下错误 Zeitwerk NameError expected file app my
  • 如何将html id添加到rails中的form_for标签中?

    我正在尝试将 id 标签添加到我在 Rails 中创建的表单中 表单的开头有以下代码 我是否可以向 form for 嵌入式 ruby 添加一个 id 或者我是否必须创建一个 form tag 字段并在那里添加 id 如果我必须创建 for
  • 使用 RSpec 测试导轨金属/机架?

    假设我有一个名为 Preview 的 Metal 类 如何使用 RSpec 进行测试 当我尝试时 require spec helper describe Preview do it should return the posted con
  • 在 Rails 中呈现路由错误的 404 页面

    我试图在 Rails 中渲染集成的 404 页面作为例外 我尝试了这个 但仍然收到路由错误页面 posts controller rb def destroy if current user username post email post
  • Rails 中多个模型的最佳实践 - 嵌套/非嵌套和验证

    笔记 根据布莱恩的评论 来自如何以 Rails 形式处理多个模型 https stackoverflow com questions 892624 how to handle multiple models in a rails form
  • 默认:Rails 资源路由的排除选项

    一个小问题 我正在将 Rails 用于 REST API 但由于它是 RESTful API 所以我并不真正需要 new or edit我的任何资源的路由 因为人们只会完全通过自动 JSON 请求而不是图形方式与此 API 交互 例如 不需
  • 如何在 Rails 测试中填充查找表

    我在用Cucumber RSpec and 工厂女工用于测试我的 Rails 应用程序 但我有几个查找表 其中大部分包含static数据 所以我试图找出测试时填充这些的最佳方法 单独做它们FactoryGirl看起来很乏味 我想远离固定装置
  • 何时使用node.js、sinatra、rails? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 这 3 种语言 框架的最佳用途是什么 混合所有 或 2 个 有用吗 如果您正在构建一个完整的 Web 应用程序 您可能应该使用 Rails 因为
  • 从 Rails 3.1.3 升级到 Rails 3.2.1。资产错误

    我尝试将应用程序从 Rails 3 1 3 升级到 Rails 3 2 1 但资产出现问题 我有这样的错误 ActionController RoutingError No route matches GET assets logos op
  • 捆绑包安装无法离线工作

    我得到了这个问题 我想已经安装了捆绑器 因为我无法在 RoR 中创建应用程序时捆绑安装 也无法直接在项目中捆绑安装 如果您遇到任何问题并找到解决方案 请帮助我 enter code here run bundle install Fetch
  • 为什么 Rails 应用程序在底部显示数据库信息?

    我创建了一个博客 每当我添加帖子时 帖子索引页面底部总会显示数据库中的记录列表 home html erb 像这样
  • 未知属性:user_id

    我在执行 current user stories build 期间收到错误未知属性 user id class User lt ActiveRecord Base has many stories class name Story for
  • 用于 S3 私有文件的 ActiveStorage

    到目前为止 我一直在使用 Paperclip 将一些文件上传到 S3 其中一些文件不是公开的 Paperclip 允许通过以下位将一些文件作为私有文件上传 has attached file image styles large 2000x
  • 为 Rails 上的 postgresql 创建用户

    我选择 postgresql 作为我的 Rails 数据库 但当我尝试运行 rake db create all 时 我遇到了一个明显常见的错误 即 致命 角色 app 不存在 我找到了两种解决方案 但我不确定哪一种是正确的 有一个网站说
  • 如何将 devise/omniauth 重定向到我登录的页面?

    我通过omniauth 进行了身份验证 并且该链接通过layout application html haml 在每个页面上都可用 然而 当他们完成omniauth身份验证后 他们都会进入root权限 我如何设置它 以便他们重定向到他们单击
  • Rails HABTM 设置、模型对象和 join_table 插入控制器设置

    我有以下设置 1 个产品有多个 Product types 许多 Product types 有 1 种类型 根据我对文档的理解 HABTM 关系 我的模型是 class Product lt ApplicationRecord has a
  • 从数组中删除空白元素

    当我从 ruby on Rails 表单中保存多个选择时 它似乎在前面添加了一个空白元素 我该如何删除它 该字段为 selected player utf8 gt authenticity token gt H8W7qPBezubyeU0a
  • 如何让 Sidekiq 在 Heroku 上运行?

    这是我第一次尝试让 Redis 在 Heroku 上运行 我添加了一个工作dyno 就在今天 所以还没有付款 添加了RedisToGo Nano附加组件 在我的本地机器上测试了后台作业 并将应用程序推送到heroku heroku ps g

随机推荐

  • 检测点是否在 SVG 路径内

    我正在尝试检测给定点是否位于 Objective C 中的闭合 SVG 路径内 我不知道如何做数学 我有一个路径的坐标 我想确定一个随机点是在路径内部还是外部 这是路径坐标的示例 M673 460 c2 0 4 1 5 2 1 1 2 2
  • Objective-C 中的全局变量 - extern 和 .m 文件顶部声明的差异

    我知道你可以使用 extern 在 Objective C 中定义一个全局变量 但我刚刚意识到我在第一个方法之前在 m 文件顶部声明的变量也意外地是全局的 这导致了一些问题 问题 我将它们移至头文件的 interface 部分 我认为这正确
  • SVN 错误:预期的 fs 格式介于“1”和“3”之间;找到格式“4”

    这就是我所做的 我已经安装了 svnserve 作为服务 并使用以下命令启动它网络启动svn服务命令 我输入了svn ls svn localhost测试该服务 但它返回了本文标题中所述的错误 我进入了svn 版本 and svnserve
  • 将一个对象属性值传输到另一个对象

    首先 我知道自动映射器 而且我不想使用它 因为我正在学习C 我想深入了解它 所以我正在尝试自己解决这个问题 如下所述 但是 我正在尝试创建一个属性复制器 以将一种类型的属性值复制到另一种类型 前提是该属性具有相同的名称和类型 并且可以从源读
  • 为什么 git 会重复添加和删除 Storyboard 部分?

    当保存故事板并将更改提交到 git 时 整个过程很可能会发生变化
  • 如何快速过滤字典并将结果输出到 CollectionViewController 中

    我正在制作一个显示口袋妖怪及其类型的应用程序 该应用程序的一部分也会显示出它们的弱点 我有一个列出所有神奇宝贝的全局变量 如下所示 var objects id 001 typeTwo Poison name Bulbasaur type
  • 对 Maybe a 进行约束,其中 Eq a

    我如何约束 Maybe a where Eq a 它必须是种类 gt 约束 我尝试过的 class a Maybe b Eq b gt K a where instance a Maybe b Eq b gt K a where Error
  • Rust 单元测试后清理的好方法是什么?

    由于测试函数会在失败时中止 因此不能简单地在被测试函数结束时进行清理 在其他语言的测试框架中 通常有一种方法可以设置一个回调来处理每个测试函数末尾的清理工作 由于测试函数会在失败时中止 因此不能简单地在被测试函数结束时进行清理 使用 RAI
  • 如何使控件正确绘制/刷新

    我有一个源自支票簿的控件 我将其称为 SettingBooleanButton 但是当将任何窗口或对话框拖动到该控件上时 该控件会保留拖动的迹象 下图显示了将应用程序窗口拖动到控件上方的效果 这是我的 OnPaint 代码块 Public
  • Famo.us IframeSurface

    我尝试在表面内实现 iframe globals define define function require exports module use strict import dependencies var Engine require
  • .NET REGEX 匹配匹配空字符串

    我有这个 pattern 0 9 0 9 Target X 113 3413475 Y 18 2054775 我想匹配数字 它与测试软件中的查找相匹配 例如http regexpal com http regexpal com 和正则表达式
  • PostgreSQL 查询约束中允许的值列表?

    给定一个名为的 PostgreSQL 表requests有一列名为status和这样的约束 ALTER TABLE requests ADD CONSTRAINT allowed status types CHECK status IN p
  • 最佳方法:访问控制允许来源多源域

    这个问题之前已经在这里被问过 并给出了一系列很好的答案 主要是 访问控制允许来源多源域 https stackoverflow com questions 1653308 access control allow origin multip
  • .htaccess 如果 url 不以扩展名结尾,则在末尾添加斜杠

    我刚刚开始学习正则表达式 但我无法弄清楚这一点 如果 URL 不包含扩展名 我需要在 URL 末尾强制添加斜杠 更清楚地说 example com test stays the same example com test php stays
  • 如何以及在哪里通过 macOS 基于 Python 的应用程序上的本机 GUI 最好地检索 sudo 密码 - (同时维护交互式输出流 (stdout))

    好的 情况是这样的 我正在使用 Python 和 wx wxphoenix 构建 macOS GUI 应用程序 用户可以使用 GUI 例如 script1 启动文件删除过程 包含在script2 为了顺利运行script2需要以 sudo
  • Ruby 字符串剥离定义的字符

    在Python中 我们可以使用 strip https docs python org library stdtypes html str strip字符串的方法 用于删除所选字符的前导或尾随出现 gt gt gt print Remove
  • 如何在 VS 项目中禁用 clang-cl 特定警告

    我使用一个第三方项目 它会产生大量警告 我在 VS 项目属性中禁用了所有这些 有时 我会切换到LLVM clang cl用于检查 clang 警告的工具集 第 3 方项目使用 clang cl 产生如此多的警告 以至于 VS 的输出量令人窒
  • 分析多进程 Python 脚本时出现神秘的 pickle 错误 [重复]

    这个问题在这里已经有答案了 我正在使用multiprocessing模块 我正在使用UpdateMessage对象 我自己的类 通过发送multiprocessing Queue对象 用于进程之间的通信 这是课程 class UpdateM
  • JBoss Netty 与 JSON

    我希望我的 Ajax 代码能够通过 Netty 连接服务器 为此 我需要在服务器端 Netty 处理程序中使用 JSON 解码器和编码器 是否有任何开箱即用的实现 或者我应该编写自己的实现 Thanks Gil 据我所知 没有内置的 JSO
  • rspec 集成测试中的会话对象

    我正在使用 rspec 和 capybara 进行集成测试 他们是在请求规范中创建会话对象的一种方法吗 我有一个视图页面 在其中使用会话对象来检查其值以显示选择性内容 我面临的问题是我无法在请求规范中创建会话对象 这是视图的示例 conte