场景与场景大纲

时间:2017-03-23 23:19:05

标签: c# selenium specflow

我需要在SpecFlow中用C#编写测试场景,其中:

Log In Test

I select a store from a list in Screen A
Perform tests in the store on Screen B
Go back to Store Select in Screen A
Select Second store from list 
Perform Test on store. 
Log Out

我目前正在为列表中的每个商店使用带有变量的场景大纲,但这对我来说似乎不起作用。任何想法都会有所帮助吗?

2 个答案:

答案 0 :(得分:1)

您的测试缺少一些重要的事情:

  1. 您没有定义它是否是场景或场景大纲。
  2. 没有'给定','何时'或'然后'步骤
  3. 使用场景大纲时,您需要Examples:块。
  4. 以下是您的测试在场景中应该是什么样的:

    Scenario: Log In Test
    
    Given I have setup my database // Put any 'setup code' here
    When I select a store from a list in Screen A // Put your 'action' here
    Then Screen A should display item number 5 // Assert your 'action' does what is expected
    

    现在,对于大纲,您可以针对不同的参数多次运行测试。 例如,上面的测试可以这样写:

    Scenario Outline: Log In Test
    
    Given I have setup my database
    When I select a store from a list in <ScreenName>
    Then <ScreenName> should display item number <ItemNumber>
    
    Examples: 
    | ScreenName | ItemNumber |
    | Screen A   | 5          |
    | Screen B   | 53         |
    | Screen C   | 9874       |
    

答案 1 :(得分:0)

如果要对多个变量进行测试,则需要一个方案概述。
假设您使用各种版本的无效电子邮件和密码来测试登录页面,那么功能文件将如下所示:

  

功能:功能文件的名称
  方案大纲:故事的简要说明
  给定用户单击登录
  当输入“电子邮件”和“密码”时
  然后必须看到错误消息

示例

| email             | password                          |  
| en email          | a password                        |