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

时间:2017-03-07 13:45:49

标签: cucumber bdd cucumber-jvm gherkin

我想在Cucumber中使用我的自定义关键字来定义步骤,例如:

  

作为管理员

     

我想执行某些操作

     

...

除了Given / Then / When / And / But?

之外,是否可以在Cucumber中定义自定义关键字

5 个答案:

答案 0 :(得分:1)

使用QAF可以提供BDD Keywords Synonyms

答案 1 :(得分:1)

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

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

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

找到更多信息

答案 2 :(得分:1)

我遇到的问题是,您为什么需要 As an I 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的答案中所述,但实际上,您根本不需要这样做。

答案 3 :(得分:1)

'*'关键字

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

让我们看一下例子:

功能:登录操作测试 说明:此功能将测试LogIn和LogOut功能

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

使用*关键字

功能:登录操作测试 说明:此功能将测试LogIn和LogOut功能

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

给定,何时,然后,并且可以全部替换为'*'关键字。测试工作正常。

答案 4 :(得分:0)

您是否面临任何错误?

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

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