重复使用黄瓜步骤

2024-01-15

我想重复使用一些黄瓜步骤,但似乎找不到正确的方法。

我想写一个这样的步骤:

Given /^I login with (.*) credentials$/ |type|
  # do stuff with type being one of "invalid" or "valid"
end

但还有另一个步骤,例如:

Given /^I login successfully$
  # call "Given I login with valid credentials"
end

因此,在测试用户身份验证时,我可以使用前者,但在大多数其他地方,我可以使用后者,而实际上不必重新生成代码。

有没有办法调用其他步骤,或者我只是将逻辑放入辅助方法中,然后从每个任务中调用所述方法(基本上是方法提取重构,在阅读我的问题后,我相信这实际上是最好的方法反正)?


请注意,在最新版本的 Cucumber 中,在步骤中调用步骤的方法已发生更改,如果您收到类似“警告:不推荐在步骤定义中使用‘Given/When/Then’,请使用‘step’来改为调用其他步骤:/path/to/step_definitions/foo_steps.rb:631:in `block in ' ”。参见黄瓜维基 https://cucumber.io/docs/guides/anti-patterns/#support-for-conjunction-steps了解详情。

更改的要点是您现在应该使用step or steps方法。

When /^I make all my stuff shiny$/
  step "I polish my first thing"
end

When /^I make all my stuff shiny$/
  steps %Q{
    When I polish my first thing
    When I shine my second thing
  }
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

重复使用黄瓜步骤 的相关文章

  • django RequestFactory 文件上传

    我尝试使用 RequestFactory 创建请求并使用文件发布 但我没有收到 request FILES from django test client import RequestFactory from django core fil
  • rvm编译安装ruby 2.5.0出错

    我正在尝试使用 rvm 安装 ruby 2 5 0 但出现错误 我在 Ubuntu 18 16 和现在的 Linux Mint Cinnamon 上尝试过 基本上我在运行安装 ruby 的代码之前所做的是 打开 GPG 密钥https rv
  • 如何测试包含自定义表单控件的组件?

    我有一个这样的组件 Component selector app custom form control templateUrl
  • Ruby 中多维数组的帮助

    我有以下代码将字符串拆分为 3 个字节的组 str hello ix 0 iy 0 bytes tby str each byte do c if iy 3 iy 0 bytes ix tby each index do i bytes i
  • 触发“对等方重置连接”

    我想测试当发生 对等方重置连接 错误时我们的应用程序 嵌入式 ftp 服务器 中发生的日志记录 这个帖子 https stackoverflow com questions 1434451 connection reset by peer很
  • 在私有控制器方法中返回redirect_to

    前言 我正在使用设备进行身份验证 我试图阻止未经授权的用户查看 编辑或更新其他用户的信息 我最关心的是用户将 DOM 中的表单修改为另一个用户的 ID 填写表单 然后单击更新 我已经专门阅读过 像下面这样的东西应该有效 但事实并非如此 SO
  • 如何向 Time.now 添加两周?

    如何在 Ruby 中向当前 Time now 添加两周 我有一个使用 DataMapper 的小型 Sinatra 项目 在保存之前 我有一个字段填充了当前时间加上两周 但未按需要工作 任何帮助是极大的赞赏 我收到以下错误 NoMethod
  • 在我的 ramaz 应用程序上显示 £ 符号时,我收到“不兼容的字符编码:CP850 和 UTF-8”

    显示时收到 不兼容的字符编码 CP850 和 UTF 8 我的 ramaz 应用程序上的符号 我怎样才能摆脱这个错误 我的 head 标签中有 UTF 8 元标签 当我输入 用键盘输入符号 看 我已将以下代码放入我的 ruby 文件中 但它
  • 如何从 Rails 中的 date_select 或 select_date 获取日期?

    Using select date给我回一个params my date with year month and day属性 如何轻松获取 Date 对象 我希望有类似的事情params my date to date 我很高兴使用date
  • Ruby 中的任务/未来

    代表潜在延迟的异步计算并且可以订阅其完成的模式的惯用 Ruby 模拟是什么 即类似于 NET 的东西System Threading Task 或Python 3 xconcurrent futures future 请注意 这并不一定意味
  • 如何从 Ruby 程序发送邮件?

    我想从 Ruby 应用程序发送电子邮件 核心语言中是否有调用来执行此操作 或者是否有我应该使用的库 最好的方法是什么 如果你不想使用行动邮递员 http wiki rubyonrails org rails pages ActionMail
  • Rails 控制台无法运行

    rbenv 红宝石版本 2 6 6 导轨版本 5 1 4 我正在较旧的代码库中工作 ruby 2 6 6 rails 5 4 1 这是我每天使用的代码库 我必须通过 rbenv 下载一个新的 ruby 版本作为单独的存储库 这样做在我的旧代
  • ruby 中的 #encode 和 #force_encoding 有什么区别?

    我真的不明白之间的区别 encode and force encoding在 Ruby 中String班级 我明白那个 kam force encoding UTF 8 将迫使 kam 是UTF 8编码 但是怎么样 encode encod
  • 如何在 Django Rest 框架中编写“删除”操作的测试

    我正在为 Django Rest Framework API 编写测试 我一直在测试 删除 我对 创建 的测试工作正常 这是我的测试代码 import json from django urls import reverse from re
  • 我在 Rails 中使用了保留字吗?

    这是我的模型 class Record lt ActiveRecord Base belongs to user belongs to directory end class Directory lt ActiveRecord Base h
  • REXML - 如何提取单个元素

    我正在用 ruby 编写一些验收测试 其中涉及断言响应 XML 中值的存在 我的 XML 是这样的
  • Rails:named_scope、lambda 和块

    我认为以下两个是等效的 named scope admin lambda company id conditions gt company id company id named scope admin lambda do company
  • Rails - 渲染:目标锚标记的操作?

    我希望像这样使用渲染 render action gt page form 我也尝试过这个 render template gt site page form 那也没用 这个特定页面上的表单位于最底部 如果提交时发生任何错误 我不希望用户被
  • 我无法让 ruby​​ 开发工具包适用于 Windows XP

    所以 我一生都无法让它正常工作 我的最终目标是安装 dbd odbc gem 并使其正常工作 从我读过的多篇文章来看 我需要安装ODBC 绑定 http www ch werner de rubyodbc 对于 ruby 以及 dbd od
  • 在 Ruby 中创建一个空文件:相当于“touch”?

    创建一个的最佳方式是什么emptyRuby 中的文件 类似于 Unix 命令的东西 touch https en wikipedia org wiki Touch 28Unix 29 touch file txt FileUtils tou

随机推荐

  • React Native - 下拉列表中的 z-index 不起作用

    我正在尝试在 React Native 中创建一个基本的下拉菜单 我创建了一个下拉组件 Dropdown import React useState from react import StyleSheet Text View Toucha
  • 如何在AppBar中用图像替换标题

    我怎样才能更换AppBarFlutter 中带有图像徽标的标题 The title属性需要一个Widget 因此您可以将任何小部件传递给它 例如 添加到资源中的图像 Scaffold appBar AppBar title Image as
  • 错误膨胀类 com.google.android.maps.MapView

    我只是遵循一个简单的地图教程http developer android com resources tutorials views hello mapview html http developer android com resourc
  • 根据特定键删除重复项

    得到一个像这样的多维数组 A array 0 gt array rel gt 4 name gt Bar 1 gt array rel gt 2 name gt Bar 2 gt array rel gt 1 name gt Foo 3 g
  • 带有 Google 地图标记的效果和动画

    我想知道如何通过 Google 地图标记创建效果 动画 具体来说 我想在给定的时间后放大 缩小或 淡出 标记 HTML5 可以吗 有没有jquery效果库可以做到这一点 我可以使用地图图块服务器来创建地图图块叠加层并每秒重新生成图块叠加层
  • 使用 LINQ 读取文本文件

    我有一个文件想要读入数组 string allLines File ReadAllLines path to file 我知道我可以遍历数组并找到包含模式的每一行并显示行号和行本身 我的问题是 是否可以使用 LINQ 做同样的事情 嗯 是的
  • 如何在cordova中运行php代码?

    我是 cordova 新手 希望将我现有的应用程序构建与 jquery mobile 和 php 转移到 iOS Android 我对吗 cordova 内部没有 php 解释器 这意味着现有的应用程序无法移植到 cordova 因为 ph
  • Java 如何在结果集中检索超过 100 万行

    我正在对 MYSQL 表执行选择查询 该表有 16 213 156 行和 10 列 但是在建立连接后 代码只执行几分钟 然后抛出错误 线程 Thread 3 中的异常 java lang OutOfMemoryError Java 堆空间
  • 加入范围:has_many:通过关联

    class Users lt ActiveRecord Base has many meetings through gt meeting participations has many meeting participations end
  • 如何使用 php 创建新的 .MDB 文件?

    在我们的内部系统中 我们从 MySQL 数据库为用户 phpexcel 生成了 csv 和 xls 文件 但我的老板询问是否可以创建 mdb 文件 我从未遇到过任何关于动态创建新 MDB 文件的示例 我想知道这是否可能 我无论如何都不是专家
  • 如何使用ajax和jquery动态更新数组表?

    我有两个文件php gettable php和index php 索引文件每隔一秒显示一次gettable php获得的结果 我想在索引中动态更新表的内容 只有新的或更改的值必须更改 使用ajax 我是ajax初学者 请帮帮我 谢谢 获取表
  • PHP Guzzle:空正文响应

    我刚刚开始尝试 guzzle 但我在响应主体上得到一个空字符串 client new Client base uri gt http httpbin org timeout gt 2 0 response client gt request
  • 具有多个描述项的 jQuery 手风琴定义列表

    我似乎无法使用jQuery 手风琴 http jqueryui com demos accordion 具有多个描述项 dd 的定义列表 作者的examples http jquery bassistance de accordion de
  • 有没有一个函数可以将圆的度数移动到0以上?

    我正在 Delphi XE2 中寻找类似于的函数Inc 这允许我从当前的度数中添加 减去一定的度数并产生新的度数 例如 如果我当前有一个点围绕圆 5 度 并且我想减去 10 则不应得到 5 度 而是 355 360 5 与添加过去的 360
  • 将 Yelp API 与 R 结合使用,尝试使用地理坐标搜索业务类型

    尝试使用 R 和库 ROAuth 连接到 yelp API 使用 rauth 模块和地理坐标的很棒的 python 示例 https gist github com phillipjohnson 8889618 https gist git
  • DOSBox 上的 8086 程序集: idiv 指令有错误?

    我正在帮助我的一个朋友调试他的程序 我们将其范围缩小到甚至在这里出现的问题 MODEL small STACK 16 CODE start mov ax 044c0h mov bl 85 idiv bl exit mov ax 4c00h
  • AWK - 如何列匹配文件 A 中的多个匹配项与文件 B 中的一个匹配项

    我试图在文件 A 中的第 1 列和文件 B 中的第 2 列之间找到匹配的字符串 并为每个匹配打印文件 A 文件 B 的整行 问题是文件 A 的第 1 列中有多个具有相同值的字符串 当我使用 awk 解决方案时 它只打印最后一个匹配项而不是所
  • C++/WinRT(Windows SDK 17134 的一部分)与 Visual Studio 15.8 Preview 3 不兼容

    尝试编译以下代码 include
  • 从另一个类访问静态变量

    我在同一个包中有两个类 我已经宣布了static variable在一个类中 并且想要在另一个类中访问该变量 这是我的代码 其中声明了静态变量 public class wampusGUI extends javax swing JFram
  • 重复使用黄瓜步骤

    我想重复使用一些黄瓜步骤 但似乎找不到正确的方法 我想写一个这样的步骤 Given I login with credentials type do stuff with type being one of invalid or valid