ruby - 尝试将 Ruby Cucumber 转换代码更改为 Cucumber 3.0.0 替换
问题描述
我最近在这个页面上发现了这个用于设置 ruby、cucumber 和 capybara 的旧项目: jonathanchrisp/capybara-cucumber-ruby-kickstarter
通过在 support/env.rb 中添加以下行,我能够修复一些运行时错误
require 'capybara/dsl'
但是,每当我运行“黄瓜”来运行代码时,它总是会失败
undefined method `open_google_maps' for "google maps":String (NoMethodError)
我认为问题在于 features/step_definitions/transforms.rb 中的“转换”代码在黄瓜 3.0.0 中已被弃用。我正在查看的代码已经超过 3 年了,所以我不确定原作者是否还会维护它。我确实联系了他。同时,我想知道是否有 Rub/Cucumber 专家可以告诉我更改旧转换代码的正确方法是:
Transform(/^google maps$/) do |impersonator|
google_maps
end
Transform(/^the user$/) do |impersonator|
@current_user
end
Transform(/^a anonymous user$/) do |impersonator|
a_anonymous_user
end
在黄瓜 3.0.0 及更高版本中工作的东西。
解决方案
转换已从 Cucumber 3 中删除,您需要切换到使用ParameterTypes
. 如何做到这一点记录在https://cucumber.io/blog/2017/09/21/upgrading-to-cucumber-3的“升级到 Cucumber 3”博客文章中。
对于您上面的第一个转换,它将类似于
ParameterType(
name: 'GoogleMaps'
regexp: /google maps/,
transformer: -> (_) { google_maps }
end
推荐阅读
- r - 如何使用R中的外部函数计算距离矩阵
- python - 定性数据按等级排序的频率
- ios - Xamarin.Forms 和 App Center:无法在 iPhone 5s 上安装 iOS 版本
- javascript - 如何处理异步 Express 中的错误?
- c# - EntityFrameworkCore returning entities that has been marked for deletion
- javascript - 如何在 Javascript 中获取 Combobox 的 innerHTML?
- python - 我的 Python XML DOM 解析器,无法解析有效的 XML
- bash - 使用变量输入创建目录和子目录的 Bash 脚本不起作用
- java - 比较集
带地图