在黄瓜特征文件中使用“ *”关键字的正确方法是什么

时间:2018-07-23 13:04:37

标签: cucumber gherkin

我需要在某些Web UI上进行多次验证。所以不用写

Then I see "foo" element on the page
And I want the user to see "bar" text
.
.
.
And new order is generated

我希望功能文件更具可读性(这可能是特定于应用程序的,而不是特定于业务的),并且应该像这样

Then following validations are made
     * "foo" element is visible
     * "bar" text is visible
     .
     .
     .
     * new order is generated

我的问题是,'*'关键字能够根据文档适应任何步骤,我使用正确吗? (我不认为是因为我的IDE不这样认为)。正确的使用方法是什么? 换句话说,如何用*编写步骤,以便IDE理解并识别步骤定义

让我知道我是否理解不正确。

编辑: 我使用'*'的方式是正确的,我们必须写类似

* "foo" is present

IDE无法识别出插件可能有问题,我使用任何标准关键字(Given / When / Then)编写了该步骤和相应的步骤定义,cucumber可以识别并相应地工作

2 个答案:

答案 0 :(得分:1)

我要使用的方法是查找所有验证的整体名称,您要验证的验证是什么?

完成该操作后,只需编写一个步骤

Then 'my foo should be valid'

然后将其实现为类似

Then 'my foo should be valid' do should_have_valid_bar should_have_valid_baz ... end

,然后编写帮助程序方法以完成此工作。这将执行以下操作

  1. 简化功能文件并使其更易于阅读。
  2. 添加或修改验证要便宜得多。
  3. 将责任转移给程序员。
  4. 简化步骤定义并减少其数量

通常,使您的计划既简单又简短,并且不包括有关如何完成工作的详细信息。将HOW推入步骤定义和辅助方法。

答案 1 :(得分:0)

GWT应该如下所示:    给定某种前提条件,就可以进行某种测试设置。    当动作发生时    然后该动作的预期结果

And和But只是前面的Given,When或Then的表示形式。

有时,这种方式的方案并不是最佳方法(并非所有作业都需要相同的工具),并且更希望列出“材料”。即

* Open web browser
* Go to google
* Search for Cheese
* Select a cheese to buy
* go to shop
* buy cheese
* eat cheese
* feel happy

在此处应使用*来显示按指示顺序排列的列表。 (我也很乐意争辩说,可以很容易地将上述内容写到GWT中,并且如果您充分理解了要描述的内容,那么大多数事情都可以做到。)