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

Is it possible to introduce custom step keyword in Cucumber?

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

As an admin

I want to perform something

...

除了Given/Then/When/And/But之外,是否可以在 Cucumber 中定义自定义关键字?

您遇到任何错误吗?

Cucumber 将执行您在 gherkin 中编写的任何步骤,前提是该步骤已在 step_definitions 文件中定义。小黄瓜脚本基本上是为了让非技术团队了解测试流程。对于如何编写它没有硬性规定。

有gherkin的基本思想是为了更好的理解,建议你写测试脚本,让不了解被测系统的人也能看懂。

这可以通过 QAF 实现,您可以在其中提供 BDD Keywords Synonyms

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

Gherkin 有多种语言版本,据我所知有 70 多种。 添加新语言非常简单。

可以在 https://github.com/cucumber/gherkin

找到更多信息

我要问你的问题是,为什么你需要 As anI want to作为关键字吗?

在我从事的大多数项目中,这些都用作上下文提供者。

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

GivenWhenThen关键字分别用于定义先决条件、行动和结果。

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

'*'关键字

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

让我们看例子:

功能:登录操作测试 说明:此功能将测试登录和注销功能

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

使用 * 关键字

功能:登录操作测试 说明:此功能将测试登录和注销功能

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

Given, When, Then, And 都可以用'*'关键字代替。并且测试会正常工作。