首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Rails 3.0.9 + Devise + Cucumber + Capybara臭名昭着的"没有路线匹配/用户/ sign_out"

这个问题是关于Ruby on Rails应用程序中使用Devise进行身份验证和授权的问题,以及Cucumber和Capybara进行行为驱动开发和测试的问题。问题的核心是在尝试访问/users/sign_out路由时出现了路由匹配错误。

首先,我们来解决路由匹配错误的问题。在Rails 3.0.9中,Devise的路由配置可能与其他路由发生冲突。为了解决这个问题,请确保在config/routes.rb文件中将Devise路由放在其他路由之前。例如:

代码语言:ruby
复制
devise_for :users

# 其他路由

接下来,我们来解决Cucumber和Capybara的问题。Cucumber是一个行为驱动开发(BDD)工具,可以帮助开发人员编写可读性强且易于理解的测试用例。Capybara是一个集成库,可以让你在Ruby和Rails应用程序中模拟Web浏览器操作。

在这个问题中,我们需要编写一个Cucumber测试用例,以确保在访问/users/sign_out路由时,能够正确地注销用户。测试用例可以如下所示:

代码语言:txt
复制
Feature: User sign out

  Scenario: User signs out successfully
    Given I am signed in as a user
    When I visit the sign out page
    Then I should be signed out

接下来,我们需要编写相应的步骤定义,以实现上述测试用例的自动化测试:

代码语言:ruby
复制
Given(/^I am signed in as a user$/) do
  # 在这里编写登录用户的代码
end

When(/^I visit the sign out page$/) do
  visit '/users/sign_out'
end

Then(/^I should be signed out$/) do
  # 在这里编写检查用户是否已注销的代码
end

最后,我们需要确保应用程序中的注销功能正常工作。可以使用以下代码来实现注销功能:

代码语言:ruby
复制
class UsersController< ApplicationController
  def sign_out
    sign_out_user
    redirect_to root_path
  end

  private

  def sign_out_user
    # 在这里编写注销用户的代码
  end
end

总之,这个问题涉及到了Rails应用程序中使用Devise进行身份验证和授权、Cucumber和Capybara进行行为驱动开发和测试以及应用程序中的注销功能。通过解决路由匹配错误、编写Cucumber测试用例和实现注销功能,我们可以确保Rails应用程序中的用户注销功能正常工作。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

精选 Flexport 在 HackerOne 这一年 6 个有趣安全漏洞

一开始,我们收到一份报告,展示了如何通过暴力攻击来获得已泄露用户访问权限。 ? 原因: 我们使用 Authy 作为我们 2FA 合作伙伴,他们 rails gem 不包括任何内置速率限制。...Authy rails gem hook 住 Devise (一个受欢迎 rails 认证/用户管理库),并在登录后使用以下代码要求 2FA: def check_request_and_redirect_to_verify_token...然而实际上,Devise 调用 authenticate? 检查用户是否进行了身份验证(在此处代码之后运行): def authenticate?(*args) result = !!...修复: 将 warden.logout 行更改为 sign_out 可以解决这个问题,因为 sign_out 有其他代码来清除登录。...教训: 连信誉良好安全公司有时也会出错,并且渗透测试也没有替代品。 对我们来说,最经济有效方法仍然是 HackerOne。

2.3K80

20+最好开源自动化测试工具

官网:http://appium.io/ Cucumber ? 是一个基于行为驱动开发概念开源工具,Cucumber允许您通过执行最优地描述应用程序行为示例来进行自动化验收测试。...Canoo WebTest是一个用于web应用程序自动化测试开源工具。这个工具简单、快速,非常适合用于报告目的。但它没有提供良好javascript支持。...官网:https://www.soapui.org/ Capybara ? Capybara是一个开源验收测试框架,在测试web应用程序时非常有用。它模拟与应用程序交互真实用户行为。...它可以与Cucumber、RSpec、Minitest等其他测试工具一起使用。...为了选择正确开源测试工具,你应该确保该工具是处于活跃维护状态,并且与你所在企业业务、团队、技能匹配,并且是团队里有相应专家。

8.9K41

“小众”之美——Ruby在QA自动化中应用

不涉及科学计算,不涉及服务开发,在没有这些需求情况下,Python和Java不再是必需。 脱离了开发语言平台,但在不关注白盒测试情况下并无太多不妥。...当Ruby用于测试开发,基本“屏蔽”了性能上劣势,充分展现了敏捷、易用特点,也是选择这一技术路线主要因素。...中编写匹配规则及预期输出,基本上实现了单个接口无编码数据驱动测试。...在针对微信M站UI自动化方案中,还需解决微信WebView切换,及多窗口切换问题,appium_lib都提供了较好支持,下面介绍下结合了Appium及Cucumber自动化框架Coral-APP...测试框架,使用接近自然语言描述,提高了Case可读性,编写上也没有其他框架那么复杂。

1.8K30

从Ruby到Node:重写Shopify CLI,提升开发体验

不过,生态系统正朝着用编译式语言(如 Go 和 Rust)实现 JavaScript 工具方向发展,因此我们希望可以摆脱对 Node 依赖。但这种事情并没有发生。...在基于框架(如 Rails项目中,框架(如 MVC)通常会支持这些模式,但我们没有框架。因此,我们必须开发自己模式和机制,并保证开发人员遵循它们。...所有命令都有一个包含命令业务逻辑服务,有些服务没有绑定到特定命令。 除了上面提到,我们还有提示符,它包含通过标准输入提示用户函数,以及将一组函数分组到特定域实用程序。...因此,我们决定投资一个使用 Cucumber 端到端测试套件,以确保各种工作流可以端到端工作。Cucumber 为我们提供了描述、运行和调试这些测试工具和 API。...利用 TypeScript TypeScript 类型系统和编译器让我们可以相信,代码单元和外部依赖关系之间契约是匹配

34020

从一个故事开始谈项目与团队管理

进度管理: 日历,工作流,项目路线图和Gantt甘特图           5. 测试管理: 项目软件缺陷Bug状态跟踪,反馈           6. ...3.2、抽象出项目的核心 对于大而全项目把握住用户痛点,找出系统核心需求,分期,分批开发; 关键需求与用户共同画出产品原型。...、项目计划控制和协调机制生搬硬套PMP,不符合公司企业文化和体制机制、团队总是关注项目的忙碌而不是项目的成果、组织没有明确授权,权责不匹配、喜欢照搬过去项目经验来管理现在项目,忽视了项目的唯一性、...5.3、计划过程中问题 5.3.1、没有良好沟通渠道设计; 5.3.2、不主动去激发用户参与项目的热情; 5.3.3、靠主观感觉盲目制定项目计划; 5.3.4、在不了解项目具体情况下对项目盲目下定义...; 5.3.5、计划资源把一切想太美好,主观性强; 5.3.6、靠个人感觉来分派工作而不是客观评估每个人能力匹配程度; 5.3.7、对变更没有实质管理,更多是体现在文档上而不是实际工作中; 5.3.8

71860

未来创新的人工智能测试自动化工具:第三次浪潮

我最近看到了一个Applitools演示,在他们路线图上有一些很酷特性,他们计划在现有机器学习技术基础上添加这些特性。...这些事情中很多还为时过早,但看看路线图会让你感觉到,现在有多少人工智能正在被纳入测试工具公司路线图中。...很明显,Charles相信在测试中使用已知模式匹配和不同的人工智能技术是非常有效。...“质量风险”是他们提供更令人兴奋洞察力,因为它将用户精力集中在重要事情上,让用户确切地知道在上一次构建中哪些文件/方法/行发生了更改,而这些更改没有经过特定测试类型(或任何测试类型)测试。...测试是以类似于CucumberBDD语法简单格式定义,因此它不需要代码,也不需要处理元素标识符。

1.3K10

2020年将改变Web开发顶级技术

2.运动用户界面(UI)设计 如今客户要求卓越客户体验,比使用自然安全数据进展更简单,更好UI计划是吸引目标人群奥秘。...许多组织正在将AI融入其先进变革技术中,并且没有迹象表明它会回落。最近,TELUS HealthBabylon制作了一个免费社会保险多功能应用程序,可让您检查,与专家交谈并访问您健康记录。...PWA通过其先进Web功能直接在其程序中为客户提供诸如了解应用程序。由于它能够分离工作并能够将物质与不同小工具相匹配,因此它倾斜和吸收力量。...SPA可让客人从麻烦路线和旋转菜单中解脱,并适应任何小工具。 9. Web服务器软件 ? Web工作人员一词可以指将您网站传达给最终客户设备(物理PC)或产品(PC应用程序)。...Ruby on Rails 众所周知,作为RoR,Ruby on Rails已成为当今Web工程师中首选之一。自2005年发布以来,RoR仍被完全允许使用,它是开源,并且可以在Linux上运行。

1.2K10

驱散谬见 | 7个常见 DevOps 误区解读

2002年转型大家都非常熟悉了,他们CTO说我们必须要转成SOA架构,所有不按这个原则工作的人都要被fire掉,他们通过强力转型,开启了SOA架构路线。...- 2009年推特也遇到了很复杂情况,他们把前端巨石架构Ruby on Rails系统花了一年多时间做重构。...- Facebook经历了快速成长后,在2009年运维已经接近崩溃,无法跟上用户增长,到处救火,于是开始进行技术和文化上变革。...,与DevOps频繁发布变更模式相匹配等,所以我们认为本质上二者是可以兼容。...没有传统控制方式,并不意味着DevOps没有安全和合规性要求,反而它会更强。 ? 5、误区五 第五个误区,DevOps没有Ops或者说排斥了IT运营。

841110

成功微服务实施技术演进微服务演进技术背景通过度量驱动架构微服务化

把一个单体 API 集合根据 LoB 功能依赖程度拆分成了 API 组。这样,我们可以在用户端无感知情况下修改后台部署架构。...大体过程如下: 构建新自动化测试:采用 CucumberCapybara 和 Selenium 来实现前端测试。Junit 和 Moco 做后端测试。...如果你是 Ruby,就可以用 Ruby On Rails 或者 Sinatra 这样框架来运行。虚拟机镜像里只需要安装一个语言运行时和固定应用启动点就可以了。 这样就做到了独立开发、独立部署。...可以说,没有 DevOps 实践和 Docker 这个工具,就没有今天微服务流行。...随之而来是公共领域应用解决方案,例如用户管理和登录这样基础组件会第一个被微服务化。 毕竟,我们没有必要重新发明那么多轮子…… 独立存储/混合存储 ?

54810

REST API有关幂等性等11条最佳实践

规则 #3:不要在 url 中添加 .json 或其他扩展名 这似乎是 Rails 某种默认行为,因此它间歇性地出现在公共 API 中。Shopify在这里感到羞耻。...这略微偏离了 410 原意("以前存在,但现在没有了"),但实际上没有人会使用这个错误,而且它也很容易解释,也不会有未来 HTTP 规范会重新使用你编造 4XX 号码风险。...查找与您打算提交内容相匹配现有交易(希望您有匹配客户参考 ID)。 为此,客户端必须序列化所有创建操作 - 否则会出现竞争条件。...这里有一个技巧 - 除非您使用用户提交 ID(“让客户端选择 ID”),否则您需要在错误消息中包含现有 ID,或者提供一种通过幂等键查找 ID 机制。...但是,它使服务器实现变得非常复杂:您需要将所有响应存储一段时间,并且需要验证客户端是否为每个请求发送了完全相同参数。 Stripe选择了这条路线

19420

微服务简介

还有部分 Java 应用被打包成自包含(self-contained)可执行 JAR。类似地,Rails 和 Node.js 应用被打包成有一定层次结构目录。...例如,以我们出租车为例,一个是乘客应用,一个是司机应用。这样更容易为特定用户、司机、设备或者专门用例部署不同场景。...每个后端服务暴露一个 REST API,大部分服务消费 API 由其他服务提供。例如,Driver Management 使用了 Notification 服务器来给司机发送一个可选路线通知。...然而,换另一种方式去思考微服务架构模式,它是没有商业化 SOA,没有集成 Web 服务规范(WS-)和企业服务总线(Enterprise Service Bus,ESB)。...你可以仅部署满足每个服务容量和可用性约束实例数目。此外,你可以使用与服务资源要求最匹配硬件。

43010

众多Python Web框架比较,哪个适合你,你就用哪个!

web2py 在Ruby世界中,Ruby on Rails是事实上Web框架。...DePaul大学计算机科学教授Massimo Di Pierro受到Rails启发,用Python创建一个易于设置和使用Web框架。结果是Web2py。...Zope通过从Web获取请求,将请求参数与内部对象数据库(ZODB)匹配,并使用请求GET或POST参数执行该对象来工作。无论从对象返回什么,都会返回给客户端。...如果要构建支持高度用户交互Web应用程序,则需要自己添加它们。 CherryPy CherryPy已经存在了超过10年,但并没有失去最初区分它极简主义和优雅。...如果需要为给定路线进行预处理或后处理,Falcon也会为这些路径提供挂钩。 Falcon对API关注意味着用传统HTML用户界面构建Web应用程序几乎没有

4.5K20

机器人相关学术速递

https://arxiv.org/abs/2112.04350 作者:Aleksey Postnikov,Aleksander Gamayunov,Gonzalo Ferrer 摘要:为了规划一条安全有效路线...在这项工作中,我们介绍了iRoPro,一个交互式机器人编程框架,它允许几乎没有技术背景最终用户教授机器人新可重用动作。...我们将演示编程和自动规划技术相结合,允许用户通过动觉演示教授新动作来构建机器人知识库。这些操作被概括并与任务计划器一起重用,以解决用户定义以前未发现问题。...我们将结果与后设计实验进行比较,在后设计实验中,我们进行了一项用户研究,以验证我们方法在实际最终用户可用性。...但由于雷达噪声存在,雷达也是一种极具挑战性传感方式。最近工作在利用激光雷达标签监督对雷达图像中空闲空间和占用空间进行分类方面取得了巨大进展。然而,还有几个问题没有解决。

25010

.Net开发者不容错过技术类RSS订阅指南

https://rsshub.app/infoq/topic/43 InfoQ中文- REST https://rsshub.app/infoq/topic/28 InfoQ中文- Ruby on Rails...如何找到大佬 Twitter/Youtube/Stackoverflow 订阅源 Twitter 订阅举例 大家知道 C#/TypeScript之父 Anders Hejlsberg 是没有个人博客...Stack overflow订阅举例 比如,我最近比较关心 .net core,在github上找到了coreFx项目的活跃开发者Jon Hanna, [1556426119175] 进入他博客发现并没有什么博客文章...用户或组织仓库RSS地址 订阅用户仓库,举例: https://rsshub.app/github/repos/yanglr 订阅组织仓库,举例: https://rsshub.app/github...pull/:user/:repo 参数: user, 必选 - 用户名 repo, 必选 - 仓库名 Github用户RSS地址 举例: https://rsshub.app/github/user/

1.4K40

.Net开发者不容错过技术类RSS订阅指南

如何找到大佬 Twitter/Youtube/Stackoverflow 订阅源 Twitter 订阅举例 大家知道 C#/TypeScript之父 Anders Hejlsberg 是没有个人博客...进入他博客发现并没有什么博客文章,发现他喜欢在stackoverflow上答题,其主页为https://stackoverflow.com/users/400547/jon-hanna。...用户或组织仓库RSS地址 订阅用户仓库,举例: https://rsshub.app/github/repos/yanglr 订阅组织仓库,举例: https://rsshub.app/github...pull/:user/:repo 参数: user, 必选 - 用户名 repo, 必选 - 仓库名 Github用户RSS地址 举例: https://rsshub.app/github/user/...参数: query, 必选 - 搜索关键词 sort, 可选 - 排序选项(默认为bestmatch) order, 可选 - 排序顺序,desc和asc(默认desc降序) 排序选项 sort 最佳匹配

1.1K41

「沙里淘金」精选浏览器端JavaScript库资源推荐

url-pattern - 比url和其他字符串正则表达式字符串匹配模式更容易。将字符串转换为数据或数据为字符串。 数字 Numeral-js - 用于格式化和操作数字JavaScript库。...pathjs - 用于Web浏览器简单轻量级路由。 crossroads- JavaScript路线。 davis.js - 使用pushStateRESTful可降级JavaScript路由。...Rails Ranger - Ruby on Rails API固定REST客户端。...旅游和指南 intro.js - 为您网站和项目提供新功能介绍和分步用户指南更好方法。 shepherd - 引导您用户浏览您应用。...BigText - jQuery插件,计算将一行文本与特定宽度匹配所需字体大小和字间距。 circletype - 一个jQuery插件,可以让你在网络上输入曲线。

5.8K20

「首席架构师推荐」一系列很棒浏览器端JavaScript库资源

url-pattern - 比url和其他字符串正则表达式字符串匹配模式更容易。将字符串转换为数据或数据为字符串。 数字 Numeral-js - 用于格式化和操作数字JavaScript库。...pathjs - 用于Web浏览器简单轻量级路由。 crossroads- JavaScript路线。 davis.js - 使用pushStateRESTful可降级JavaScript路由。...Rails Ranger - Ruby on Rails API固定REST客户端。...旅游和指南 intro.js - 为您网站和项目提供新功能介绍和分步用户指南更好方法。 shepherd - 引导您用户浏览您应用。...BigText - jQuery插件,计算将一行文本与特定宽度匹配所需字体大小和字间距。 circletype - 一个jQuery插件,可以让你在网络上输入曲线。

6.6K21

人工智能学术速递

我们直接考虑到达时间分布,而不是对条件强度函数施加特定假设,并提出使用似然比损失与矩匹配机制进行优化和模型选择。...此外,我们还提供了在可视化仪表板中使用方面观点作为解释建议适用性示例,该仪表板允许获得从输入图嵌入中获得类似用户最喜欢和最不喜欢方面的信息。...此外,越来越多方法采用半监督方法来要求更多训练数据。然而,这些方法仍然存在两个挑战:(1)互动不足:实体和关系之间互动没有得到充分利用(2) 低质量引导:生成半监督数据质量低。...EHRs中存储信息中,有一半以上是非结构化文本(例如,提供商说明、运营报告)形式,基本上还没有开发出来供二次使用。...当应用于在基准数据集上图像分类任务时,我们证明了免疫网络RAILS在基线方法(DkNN鲁棒CNN)对抗性精度方面提高了12.5%,而在干净数据上没有明显精度损失。

74640

人工智能学术速递

根据2019年2月在联合国总部举行启动代码8.7会议,本次研讨会重点是将美国人工智能研究20年社区路线图(AI路线图)中概述宏伟目标与实现联合国可持续发展目标8.7(消除现代奴隶制)关键挑战联系起来...然而,虽然已有一些基于协方差特征相关性分析方法,但对于基于图神经网络模型结构特征相关性研究还没有相关研究。...由于动漫最近获得了主流关注,我们对于用户喜好和观看习惯还没有足够信息。因此,为这种相对晦涩娱乐媒体构建推荐引擎是一项艰巨任务。...针对这一问题,本文提出了一种基于图神经网络关键值匹配模型(MatchVIE)。该方法通过基于相关性评价键值匹配,绕过了对各种语义识别,只关注实体间强相关性。...,可以实现数据自动清洗、模式匹配、数据发现、语义数据类型规范化和敏感数据识别。

87430

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券