我是Specflow的新手,需要一种在多个功能文件中重用场景的方法。
我有一个由多个页面组成的Web应用程序,每个页面共享许多项目,例如页脚内容。说我的页脚包含3个链接:
Help | Feedback | FAQ
我有一个场景来测试"帮助"链接功能:
Scenario: Help link
Given I am on page1
When I click on the link containing text "Help"
Then I see the help popup
作为"鉴定" statement指定要打开的页面,该场景与该页面相关联。为了在第2页,第3页,第4页等测试相同的帮助链接功能,我需要:
1)将场景复制到另一个特征文件
2)更改给定语句以引用正确的页面
3)对包含帮助链接的所有页面重复操作!
这似乎是一个非常多的重复,必须有一个更好的方法来做到这一点。
答案 0 :(得分:2)
您可以使用Scenario Outline,它基本上是一个数据驱动的测试:
Scenario Outline: Help link
Given I am on <Page>
When I click on the link containing text "Help"
Then I see the help popup
Examples:
| Page |
| Home |
| Contact Us |
| About Us |
答案 1 :(得分:1)
在此级别工作时,您无法测试所有内容。事实上,你只能测试一小部分可能。所以你要做的就是考虑在每个其他页面上测试页脚的好处,看看这是否值得花费
其次,您不需要为每个页面重复所有测试。如果链接在一个页面上工作,那么它们将在每个其他页面上工作,因此您可以测试链接一次,然后检查页脚是否出现在其他页面上,例如。
Feature: Footer checks
Scenario: Footer appears on pages
Given a selection of pages
When each page is visited
Then each page should have the footer
让您选择的页面成为所有页面中的随机小样本。