在多个页面上重复使用方案

时间:2015-01-13 16:41:20

标签: bdd specflow gherkin

我是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)对包含帮助链接的所有页面重复操作!

这似乎是一个非常多的重复,必须有一个更好的方法来做到这一点。

2 个答案:

答案 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)

在此级别工作时,您无法测试所有内容。事实上,你只能测试一小部分可能。所以你要做的就是考虑在每个其他页面上测试页脚的好处,看看这是否值得花费

  1. 编写测试
  2. 运行测试
  3. 其次,您不需要为每个页面重复所有测试。如果链接在一个页面上工作,那么它们将在每个其他页面上工作,因此您可以测试链接一次,然后检查页脚是否出现在其他页面上,例如。

    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
    

    让您选择的页面成为所有页面中的随机小样本。