黄瓜:只重复一个步骤几次

Cucumber: repeat only one step several times

如果我有这样的场景大纲:

Scenario Outline: test
Given I am on page X
When I fill the <name> on field <fieldID>
And I click on Ok button
Then I should see something

Examples:
name   | fieldID   |
"Jhon" | "name1"|
"Max" | "name2" |
"Paul" | "name3"|

我可以 运行 只 "When" 步骤 3 次然后单击确定吗?还是我必须写下所有 3 个不同的步骤?我需要这 3 条信息才能单击“确定”,这不像是我用不同的登录值测试了 3 次的登录

您不需要 3 个不同的步骤,因为场景大纲会根据 "Examples:" 中的数据自动生成不同的测试。在您的示例中,SpecFlow 将生成 3 个不同的测试,因为您在 "Examples:" 中有 3 行。大话短说,你只需要一个场景,它将执行 n 次,其中 n 是 "Examples:".

中的行数

您必须用不同的参数编写三个步骤,如果您使用场景大纲,那么每个场景都会重复所有步骤。根据您的要求,您可以尝试以下步骤。

Scenario: test
   Given I am on page X
   When  I fill the "John" on field "name1"
   When  I fill the "Max" on field "name2"
   When  I fill the "Paul" on field "name3"
   And   I click on Ok button
   Then  I should see something

你也可以这样写你的场景:

Scenario Outline: test
Given I am on page X
When I fill in the following names
 name   | fieldID |
 "Jhon" | "name1" |
 "Max"  | "name2" |
 "Paul" | "name3" |
And I click on Ok button
Then I should see something

然后 table 将作为数组提供给 When 语句的步骤实现。

我想问的一个问题是真实姓名真的重要吗?如果没有,那你也可以直接写When I fill in 3 names,然后用steps方法随便填一些名字就可以了。