可以在Cucumber中引入自定义步骤关键字吗?

可以在Cucumber中引入自定义步骤关键字吗?,cucumber,bdd,cucumber-jvm,gherkin,Cucumber,Bdd,Cucumber Jvm,Gherkin,除了Cucumber中现有的关键字外,我想使用我的自定义关键字定义步骤,即: 作为管理员 我想做点什么 除了给定的/Then/When/And/But之外,是否可以定义自定义关键字?您是否面临任何错误 Cucumber将执行您用gherkin编写的任何步骤,前提是该步骤是在step\u definitions文件中定义的。小黄瓜脚本基本上是供非技术团队理解测试流程的。关于如何写,没有硬性规定 拥有小黄瓜的基本想法是更好地理解,建议您编写测试脚本,不了解测试系统的人可以理解这些脚本。您是否面临任

除了Cucumber中现有的关键字外,我想使用我的自定义关键字定义步骤,即:

作为管理员

我想做点什么


除了给定的/Then/When/And/But之外,是否可以定义自定义关键字?

您是否面临任何错误

Cucumber将执行您用gherkin编写的任何步骤,前提是该步骤是在
step\u definitions
文件中定义的。小黄瓜脚本基本上是供非技术团队理解测试流程的。关于如何写,没有硬性规定


拥有小黄瓜的基本想法是更好地理解,建议您编写测试脚本,不了解测试系统的人可以理解这些脚本。

您是否面临任何错误

Cucumber将执行您用gherkin编写的任何步骤,前提是该步骤是在
step\u definitions
文件中定义的。小黄瓜脚本基本上是供非技术团队理解测试流程的。关于如何写,没有硬性规定


有小黄瓜的基本思想是更好地理解,建议您编写测试脚本,这些脚本可以被不了解测试系统的人理解。

这可以通过QAF实现,您可以提供

这可以通过QAF实现,您可以提供

您可以实现自己的翻译,从而引入新词

据我所知,黄瓜有多种语言,超过70种。 添加一种新语言非常简单


更多信息可在

中找到。您可以实现自己的翻译,从而引入新单词

据我所知,黄瓜有多种语言,超过70种。 添加一种新语言非常简单


更多信息可以在

中找到。我想问你的问题是,为什么你需要将
作为一个
我想作为关键字

在我工作过的大多数项目中,它们都被用作上下文赋予者

Feature: Register for an account
   As a potential customer
   I want to register for an account
   In order to book a flight

  Scenario: Particular Scenario
   Given I have not got an account
     And I want to access BDD Flights ticket booker
   When I register for an account
   Then I should be able to log in
给定的
然后
关键字分别用于定义先决条件、行动和结果


如果你真的想添加关键字,那么你可以添加你自己的小黄瓜翻译来匹配这些,正如Thomas Sundberg的回答所述,但实际上,你根本不需要这样做。

我要问你的问题是,为什么您需要将
作为
作为关键字

在我工作过的大多数项目中,它们都被用作上下文赋予者

Feature: Register for an account
   As a potential customer
   I want to register for an account
   In order to book a flight

  Scenario: Particular Scenario
   Given I have not got an account
     And I want to access BDD Flights ticket booker
   When I register for an account
   Then I should be able to log in
给定的
然后
关键字分别用于定义先决条件、行动和结果

如果您确实想添加关键字,那么您可以添加您自己的小黄瓜翻译以匹配这些,正如Thomas Sundberg的回答中所述,但实际上,您根本不需要这样做。

'*'关键字

“*”很特别。这违背了给出、When、Then和所有其他关键字的全部目的。基本上Cucumber并不关心您使用什么关键字来定义测试步骤,它只关心每个步骤需要执行什么代码。该代码称为步骤定义。请记住,所有的关键字都可以替换为*关键字,您的测试将正常工作

让我们看一个例子:

功能:登录操作测试 描述:此功能将测试登录和注销功能

场景:使用有效凭据成功登录
给定用户位于主页上
当用户导航到登录页面时
用户输入用户名和密码
然后消息显示登录成功

使用*关键字

功能:登录操作测试 描述:此功能将测试登录和注销功能

场景:使用有效凭据成功登录
*用户在主页上
*用户导航到登录页面
*用户输入用户名和密码
*消息显示登录成功

给定,When,Then,And都可以替换为“*”关键字。而且测试也可以正常工作。

'*'关键字

“*”很特别。这违背了给出、When、Then和所有其他关键字的全部目的。基本上Cucumber并不关心您使用什么关键字来定义测试步骤,它只关心每个步骤需要执行什么代码。该代码称为步骤定义。请记住,所有的关键字都可以替换为*关键字,您的测试将正常工作

让我们看一个例子:

功能:登录操作测试 描述:此功能将测试登录和注销功能

场景:使用有效凭据成功登录
给定用户位于主页上
当用户导航到登录页面时
用户输入用户名和密码
然后消息显示登录成功

使用*关键字

功能:登录操作测试 描述:此功能将测试登录和注销功能

场景:使用有效凭据成功登录
*用户在主页上
*用户导航到登录页面
*用户输入用户名和密码
*消息显示登录成功


给定,When,Then,And都可以替换为“*”关键字。测试将很好地工作。

如果我不使用任何提到的关键字(即给定的),步骤定义将被忽略。我认为黄瓜不考虑这样的行定义:从文档:<代码>下面的行,在特征、场景、场景大纲或示例Y后面