黄瓜:只重复一个步骤几次
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方法随便填一些名字就可以了。
如果我有这样的场景大纲:
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方法随便填一些名字就可以了。