重复使用黄瓜步骤

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(使用前将#替换为@)

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

随机推荐

  • 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