Cucumber Gherkins中的相同步骤定义

时间:2013-12-16 05:45:50

标签: 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 Name
When i select the option to proceed Next

I select the option to proceed Next”出现三次。应该如何在Step Definitions Java类文件中编写它?

2 个答案:

答案 0 :(得分:3)

除了陈述性/势在必行的问题,还要考虑一下你所描述的要求。由于这个原因,我发现在示例中包含Scenario:很有帮助。在给定步骤

中获得那么多细节是非常不寻常的

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

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)

但是,如果您创建订单只是为了设置场景以测试其他内容,那么您可以作弊并只是声明订单应该存在:

Scenario: Check the status of an order
    Given that I have created an order:
       | NRIC/FIN | Colour | Full Name |
       | xxxxx    | Red    | John Doe  |
    When I check the status of my order
    Then I should see a new order...

自动化取决于它是通过屏幕点击来创建该订单还是只是将其插入数据库,所有重要的是,当您到达Whens时,订单应该存在。

在理想的BDD世界中,Gherkin将在实现之前编写,但它通常不会那样工作。我仍然觉得尝试假装我在理想世界中编写功能是有用的。问“在开始开发之前我怎么写这个?”可以帮助从实现细节中分离实际需求(我可以输入订单)(在输入每个数据项后单击“下一步”)。

答案 1 :(得分:1)

在编写黄瓜场景时,您可以采用命令式或声明式。我更愿意写下面的内容。

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

所以这取决于谁将阅读你的场景。值得一读的链接是imperative - declarative