Rails 在集成测试中设计经过身份验证的路由

2024-01-25

我想测试应用程序中的每条路线,并了解到我应该在集成测试中执行此操作:在 ruby​​ on Rails 中测试路线的位置 https://stackoverflow.com/questions/5290245/where-to-test-routes-in-ruby-on-rails

但是我收到以下错误:

NoMethodError: undefined method `authenticate?' for nil:NilClass
/usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/devise-2.1.2/lib/devise/rails/routes.rb:286:in `block in authenticated'

网上有很多人提到,在集成测试中不能使用 Devise::TestHelpers --设计 Google 群组 https://groups.google.com/forum/?fromgroups=#!topic/plataformatec-devise/QPOzZ1n6mfg, 设计 Github 页面 https://github.com/plataformatec/devise#test-helpers


我如何测试如下路线?

# config/routes.rb

devise_for :users

authenticated :user do
  root to: 'static#home'
end

root to: 'static#landing'

我正在运行测试单元测试$ rake test:integration


Devise::TestHelpers 通过将内容直接放入会话中来工作。使用 Capybara 运行集成测试时,您无权访问服务器端会话。您只需访问浏览器即可。

在我们的应用程序中,我们的集成测试使用这样的辅助方法,通过用户界面与 Devise 交互:

def authenticate(user, password = nil)
  password ||= FactoryGirl.attributes_for(:user)[:password]
  visit new_user_session_path
  fill_in 'email', with: user.email
  fill_in 'password', with: password
  click_on 'Login'
  expect(current_path).to eq welcome_path
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails 在集成测试中设计经过身份验证的路由 的相关文章

  • Capistrano 和 XSendFile 配置

    我正在尝试使用 Apache 2 2 Passenger 4 0 59 和 XSendFile 0 12 配置 Rails 生产服务器 应用程序通过 Capistrano 部署 部署的应用程序生成 可能很大 PDF Rails root t
  • 在 ec2 上托管 Rails

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

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

    有谁知道如何让assert select在rake测试期间不输出所有那些讨厌的html警告 你知道 就像这样的东西 ignoring attempt to close body with div opened at byte 1036 li
  • Rails:named_scope、lambda 和块

    我认为以下两个是等效的 named scope admin lambda company id conditions gt company id company id named scope admin lambda do company
  • rvm gem 安装错误?

    我正在摆弄 ruby gems 和 rvm 它工作得很好 但现在当我尝试安装 gem 时出现错误 gem install Rails错误 同时 执行 gem Errno EACCES 权限被拒绝 Users da rvm gems ruby
  • Windows 7 x64 上的 Ruby on Rails SQLite 问题

    当我尝试做的时候db create使用 Windows 7 x64 在具有此数据库配置的 sqlite 数据库上 development adapter sqlite3 database db development sqlite3 tim
  • 来自控制器的 Rails 验证

    有一个联系页面 可以输入姓名 电话 电子邮件和消息 然后发送到管理员的电子邮件 没有理由将消息存储在数据库中 问题 如何 在控制器中使用 Rails 验证 根本不使用模型 或者 在模型中使用验证 但没有任何数据库关系 UPD Model c
  • RoR - Rails 中的大文件上传

    我有一个 Rails Web 应用程序 允许用户上传视频 视频存储在 NFS 安装的目录中 当前的设置适用于较小的文件 但我也需要支持大文件上传 最多 4GB 当我尝试上传 4GB 文件时 它最终会发生 但从用户体验的角度来看很糟糕 上传开
  • 如何在 Ruby 2.2 上删除不安全密码来强化 Rails+webrick+https

    更新 首先 我的测试代码没有充分显示 ruby 2 4 看到 SSLCiphers 选项 而 ruby 2 2 没有 我编辑了下面的示例代码以清楚地表明这一点 更新 由于我的问题未能得到社区的任何帮助 我继续前进 两天后找到了解决方案 我将
  • 使用rSpec 测试delayed_job 链的最佳方法是什么?

    目前 当我的代码中有一个延迟方法时 如下所示 CommentMailer delay deliver comments comment true 我在规范中写了这样的内容 dj mock DelayProxy CommentMailer s
  • Rails 资源单数还是复数?

    我有一条搜索路线 我想将其设为单数 但是当我指定单数路线时 它仍然会生成复数控制器路线 这是应该的样子吗 resource search Gives me search POST search format action gt create
  • 为 RoR 中的每个用户创建新的 URL 路径

    如何在 Ruby on Rails 中实时创建新的 URL 路径 例如 我希望我的用户拥有 name XXX com 或 XXX com name 仅供参考 我在 Heroku 上托管代码 看看 subdomain fu 插件 https
  • 高效地重新安排 ActiveJob (resque/sidekiq)

    我正在玩Rails 4 2应用程序使用ActiveJob受支持resque sidekiq用于电子邮件安排 当用户创建时事通讯活动时 会创建一个新作业并安排在特定日期 这一切都很好 但是当用户更改交货日期时会发生什么 在这种情况下 每个作业
  • MySQL正则表达式:如何将字符串中的数字与\d匹配?

    我有一个专栏release date它以字符串格式存储日期 不是 DATETIME 格式 因为它们有时可以是任何其他字符串文字 我想根据给定的月份和年份查找任意日期的所有记录 尝试遵循但对我不起作用 gt Post find all con
  • RSpec:如何在静态方法上使用should_receive?

    我在 lib gcm rb 中有一个模块 require net http require uri module GCM def self dispatch message reg ids data url URI parse GCM UR
  • Rails 3.1、Ruby 1.9.2-p180 和 UTF-8 问题

    我在使用 UTF 8 字符时遇到一些问题 这是 db seeds rb User create username eml first name last name ck email email protected cdn cgi l ema
  • 在 Rails 项目中保存自定义异常定义的常规位置是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 当创建自己的自定义异常时 例如 class ThingExploded lt StandardError end class ThingIsMi
  • 尝试使用 Ruby Java Bridge (RJB) gem 时出现错误“无法创建 Java VM”

    我正在尝试实现 Ruby Java Bridge RJB gem 来与 JVM 通信 以便我可以运行 Open NLP gem 我在 Windows 8 上安装并运行了 Java 所有迹象 至少我所知道的 都表明 Java 已安装并可运行
  • 使用 AJAX 和 JQuery 按设定的时间间隔刷新 Rails 部分

    I have a page in my rails application that looks like 现在 我有另一个用 python 编码的人工智能应用程序 它处理视频 显示在 Rails 应用程序页面的左侧 并使用捕获的车辆及其相

随机推荐

  • 在生成 PDF 时,如何将 Google 地图(或其他 GIS 地图)输出嵌入到 PDF 中?

    我需要在服务器端生成 PDF 文档 其中包括地图 标记等 但据我所知 由于 JavaScript 依赖 这对于 Google 地图来说是不可能的 有没有办法使用 Google Maps API 来实现此目的 或者是否有其他免费 或便宜 的替
  • Delphi XE2:调用 WinAPI EnumResourceNames 导致 Win64 平台中的访问冲突

    在Delphi XE2 Win32平台上运行以下代码可以正常工作 然而 在 win64 平台上编译的相同代码如果在调试模式下运行 将导致 EnumRCDataProc 中的访问冲突 procedure TForm2 Button1Click
  • 在目录中查找部分字符串匹配的文件

    我有一个包含以下文件的目录 apple1 json gz apple2 json gz banana1 json gz melon1 json gz melon2 json gz 我希望找到所有的apple banana and melon
  • Python解析包含函数、列表和字典的字符串

    我正在尝试找到方法来解析可以包含用 python 语法编写的变量 函数 列表或字典的字符串 并用 分隔 空格应该在任何地方都可以使用 因此当它不在 或 内时 请用 分隔 示例字符串 variable function1 1 3 functi
  • 从分支获取最新 Git 提交哈希的命令

    如何使用命令行检查特定 Git 分支的最新提交哈希值 git log n 1 branch name branch name 可能是远程或本地分支 是可选的 没有branch name 它将显示当前分支上的最新提交 例如 git log n
  • Clang - 将 C 标头编译为 LLVM IR/位码

    假设我有以下简单的 C 头文件 foo1 h typedef int foo typedef struct foo a char const b bar bar baz foo bar 我的目标是获取这个文件 并生成一个看起来像这样的 LL
  • 树莓派-gpio (sysfs) 上的 poll() 树莓派

    正如标题所述 我在将一些用户空间中断代码从另一个 armv7 嵌入式 Linux 平台移植到 Raspberry Pi 2 Model B 时遇到问题 我知道 WiringPi 库 并让它以这种方式工作 但出于评估原因 我希望在两个平台上运
  • 无法同时处理点击和触摸事件

    我正在尝试处理按钮上的触摸事件和单击事件 我执行以下操作 button setOnClickListener clickListener button setOnTouchListener touchListener 当注册任何一个侦听器时
  • Windows 每种语言版本的默认代码页

    在哪里可以找到有关 Windows 每种语言版本的默认代码页的信息 即 ANSI 每种语言版本的代码页 我找到了Windows 支持的代码页 http msdn microsoft com en us goglobal bb964654 a
  • 构建 AOSP 并添加具有运行时权限的系统应用程序

    我在 Android 6 AOSP 上工作 我能够构建添加应用程序作为系统应用程序 但现在我想在这个系统应用程序上默认添加运行时权限 这样应用程序就可以启动而无需要求用户验证权限 你知道我该怎么做吗 谢谢你的帮助 如果您的应用程序具有特权
  • 为什么 getSelectedItem 返回 null?

    我刚刚学习 OOP 对这篇基本文章感到抱歉 我不知道为什么当我尝试获取所选项目的值时它返回 nullJComboBox public class AddEmployee extends javax swing JInternalFrame
  • 所见即所得与所见即所得

    在基于 Web 的应用程序中 哪一个更好 更理想 Edit 实际上我正在开发一个社区网站 所以用户的水平可能会有所不同 听说 WYSIWYG 编辑器存在 XSS 安全问题 我也不熟悉所见即所得编辑器及其功能 据我所知WYSIWYM 编辑器中
  • python-从json对象中选择唯一的键值

    我有一个json回复 data id 1 name Tom age 24 id 2 name Nick age 45 id 3 name Harry age 18 id 1 name Tom age 29 count 4 而且我要outpu
  • Heroku“psql:致命:剩余的连接插槽保留用于非复制超级用户连接”

    我正在 Heroku 上开发一个带有 Postgresql 后端的应用程序 当我尝试从 CLI 和在服务器上加载页面访问数据库时 我会定期收到此错误消息 psql FATAL remaining connection slots are r
  • 结构体作为 Go 映射中的键

    我正在研究使用结构作为 golang 映射中的键 该结构中的字段也应该是映射 这似乎与提供的文档相悖here http blog golang org go maps in action这表示只有具有可比较字段的结构 and 可以位于用作映
  • 什么是 weblogic.socket.Muxer?

    你们中有人了解 weblogic socket Muxer 在 WebLogic 8 1 中的用途吗 我经常在线程转储中看到类似于以下的堆栈跟踪 ExecuteThread 0 for queue weblogic socket Muxer
  • HttpContext.Current.User 始终为 null

    我有一个 WCF 服务 它有一个方法可以返回正在使用该服务的 Silverlight 客户端的 Windows 用户名 WCF 服务使用 basicHttpBinding 并将 TransportCredentialOnly 模式设置为 W
  • 与适用于 Mac 的三星智能电视 sdk 4.1 配合使用

    我有一个愚蠢的问题 我安装 2013 Samsung TV SDK 4 1 MacOS pkg 并下载 2013 Smart TV Emulator 4 1 VB zip 和虚拟盒的安装 ova 文件 所以我想终于一切都完成了 但不是 当我
  • 如何让 JTIdy 使 HTML 文档格式良好?

    我正在使用 JTidy v r938 我正在使用这段代码来尝试清理页面 final Tidy tidy new Tidy tidy setQuiet false tidy setShowWarnings true tidy setShowE
  • Rails 在集成测试中设计经过身份验证的路由

    我想测试应用程序中的每条路线 并了解到我应该在集成测试中执行此操作 在 ruby on Rails 中测试路线的位置 https stackoverflow com questions 5290245 where to test route