Cucumber 黄瓜小黄瓜中的相同步骤定义

Cucumber 黄瓜小黄瓜中的相同步骤定义,cucumber,gherkin,cucumber-junit,Cucumber,Gherkin,Cucumber Junit,我有以下小黄瓜: Given i go to the URL And i enter the <NRIC or FIN> as NRIC / FIN And i select the option to proceed Next And i select the first available available Handset Color And i select the option to proceed Next And i enter <Full Name> as

我有以下小黄瓜:

Given i go to the URL
And i enter the <NRIC or FIN> as NRIC / FIN
And i select the option to proceed Next
And i select the first available available Handset Color
And i select the option to proceed Next
And i enter <Full Name> as Name
When i select the option to proceed Next
如果我转到URL
我以NRIC/FIN的身份进入
我选择了下一步继续的选项
我选择了第一个可用的手机颜色
我选择了下一步继续的选项
我以名字的形式输入
当我选择继续下一步的选项时

I选择继续下一步的选项”
”出现三次。如何将其写入步骤定义Java类文件中?

在编写场景时,可以采用命令式或声明式样式。我更愿意写和下面一样的东西

Given i go to the URL
And i enter NRIC / FIN
And i select the first available Handset Color
And i enter <Full Name> as Name
Then I should see that
如果我转到URL
我输入了NRIC/FIN
我选择了第一个可用的手机颜色
我以名字的形式输入
那我应该看看

因此,这取决于谁将阅读您的场景。值得一读的链接是

在编写场景时,您可以采用命令式或声明式风格。我更愿意写和下面一样的东西

Given i go to the URL
And i enter NRIC / FIN
And i select the first available Handset Color
And i enter <Full Name> as Name
Then I should see that
如果我转到URL
我输入了NRIC/FIN
我选择了第一个可用的手机颜色
我以名字的形式输入
那我应该看看

因此,这取决于谁将阅读您的场景。一个值得一读的链接是

以及声明性/命令性问题,请思考您所描述的需求。出于这个原因,我发现在示例中包含
场景:
很有帮助。在给定的步骤中有这么多细节是非常罕见的

您是否正在测试订单的创建(有点猜测)?如果是这样,那么您的输入/选择步骤应该是场景中的When,例如:

Scenario: Create a new order
    Given I have gone to the URL
    When I enter the NRIC/FIN: <NRIC/FIN> 
     And I choose the first available Handset Colour
     And I enter <Full Name> as Name
    Then my new order should be confirmed (or whatever)
这取决于自动化,无论是通过屏幕点击创建订单,还是只是将其插入数据库,重要的是,当您到达订单应该存在的时间点时


在理想的BDD世界中,小黄瓜将在实现之前编写,但它通常不会以这种方式工作。我仍然觉得,在理想的世界里,假装我在写这些特性是很有用的。询问“在我们开始开发之前,我应该如何编写此文档?”有助于将实际需求(我可以输入订单)与实现细节(我在输入每个数据项后单击“下一步”)分开。

以及声明性/命令性问题,思考您正在描述的需求。出于这个原因,我发现在示例中包含
场景:
很有帮助。在给定的步骤中有这么多细节是非常罕见的

您是否正在测试订单的创建(有点猜测)?如果是这样,那么您的输入/选择步骤应该是场景中的When,例如:

Scenario: Create a new order
    Given I have gone to the URL
    When I enter the NRIC/FIN: <NRIC/FIN> 
     And I choose the first available Handset Colour
     And I enter <Full Name> as Name
    Then my new order should be confirmed (or whatever)
这取决于自动化,无论是通过屏幕点击创建订单,还是只是将其插入数据库,重要的是,当您到达订单应该存在的时间点时

在理想的BDD世界中,小黄瓜将在实现之前编写,但它通常不会以这种方式工作。我仍然觉得,在理想的世界里,假装我在写这些特性是很有用的。询问“在我们开始开发之前我将如何编写此文档?”有助于将实际需求(我可以输入订单)与实现细节(在输入每个数据项后单击Next)分开