美文网首页
Lettuce Feature(功能)

Lettuce Feature(功能)

作者: Ailsa的简书 | 来源:发表于2017-09-19 22:55 被阅读0次

    除非你用过Cucumber命名,你可能好奇Lettuce的概念术语。
    如果是这样,本文将指导你认识Lettuce非常基本的关键词。

    Features

    由于Lettuce被用来测试项目的行为,因此行为被分解成系统的功能。
    在列举了功能之后,你需要创建场景来描述这些功能。因此,场景是功能的组成部分。
    让我们通过示例学习:假设我们想创建一个管理地址簿的系统。
    好的,通讯录最基本的特点之一就是增加联系人,其中包括他们的姓名和电话号码。
    这是Lettuce怎样来描述特征:

    Feature: Add people to address book
      In order to organize phone numbers of friends
      As a wise person
      I want to add a people to my address book
    
      Scenario: Add a person with name and phone number
        Given I fill the field "name" with "John"
        And fill the field "phone" with "2233-4455"
        When I save the data
        Then I see that my contact book has the persons:
          | name | phone     |
          | John | 2233-4455 |
    
      Scenario: Avoiding a invalid phone number
        Given I fill the field "name" with "John"
        And fill the field "phone" with "000"
        When I save the data
        Then I get the error: "000 is a invalid phone number"
    

    在这个Feature上面我们可以发现一些元素,例如:
    Feature名:

    Feature: Add people to contact book
    

    Feature标题

    In order to organize phone numbers of friends
    As a wise person
    I want to add a people to my address book
    

    场景

    Scenario: Add a person with name and phone
      Given I fill the field "name" with "John"
      And fill the field "phone" with "2233-4455"
      When I save the data
      Then I see that my contact book has the persons:
        | name | phone     |
        | John | 2233-4455 |
    
    Scenario: Avoiding a invalid phone number
      Given I fill the field "name" with "John"
      And fill the field "phone" with "000"
      When I save the data
      Then I get the error: "000 is a invalid phone number"
    

    场景

    一个或多个场景组成一个Feature。有两种场景:

    简单的

    简单的场景是由步骤组成的,不管它们是简单的还是表式的步骤。
    上面的那个特征是由两个简单的场景构成。

    概述的

    概述的场景非常方便,因为它们帮助你避免重复。
    假设我们需要多次填写同一表格,每次使用不同的数据集。下面演示如何使用Scenario Outline(场景概述):
    让我们来看看如何做Scenario Outline:

    Feature: Apply all my friends to attend a conference
      In order to apply all my friends to the next PyCon_
      As a lazy person
      I want to fill the same form many times
    
      Scenario Outline: Apply my friends
        Go to the conference website
        Access the link "I will attend"
        Fill the field "name" with "<friend_name>"
        Fill the field "email" with "<friend_email>"
        Fill the field "birthday" with "<friend_birthdate>"
        Click on "confirm attendance" button
    
      Examples:
        | friend_name | friend_email         | friend_birthdate |
        | Mary        | mary@domain.com      | 1988/02/10       |
        | Lincoln     | lincoln@provider.net | 1987/09/10       |
        | Marcus      | marcus@other.org     | 1990/10/05       |
    

    简单地说,上面的场景相当于下面展示的冗长的代码。

    Feature: Apply all my friends to attend a conference
      In order to apply all my friends to the next PyCon_
      As a lazy person
      I want to fill the same form many times
    
      Scenario: Apply Mary
        Go to the conference website
        Access the link "I will attend"
        Fill the field "name" with "Mary"
        Fill the field "email" with "mary@domain.com"
        Fill the field "birthday" with "1988/02/10"
        Click on "confirm attendance" button
    
      Scenario: Apply Lincoln
        Go to the conference website
        Access the link "I will attend"
        Fill the field "name" with "Lincoln"
        Fill the field "email" with "lincoln@provider.net"
        Fill the field "birthday" with "1987/09/10"
        Click on "confirm attendance" button
    
      Scenario: Apply Marcus
        Go to the conference website
        Access the link "I will attend"
        Fill the field "name" with "Marcus"
        Fill the field "email" with "marcus@other.org"
        Fill the field "birthday" with "1990/10/05"
        Click on "confirm attendance" button
    

    正如你所注意到的,Scenario Outline非常有用,帮助避免文本和代码重复。

    步骤及其定义

    同场景一样,步骤也有两种:

    简单的步骤

    简单的步骤实际上很简单,它们与场景中的步骤定义有关。
    Lettuce认为每个场景的每一行是一个简单的步骤。唯一的例外是,如果该行的第一个非空白字符是管道 |。在这种情况下,Lettuce会认为这个步骤是表格的步骤。
    例如,一个简单的步骤可能看起来像这样:

    Given I go to the conference website
    

    表格步骤

    模拟到概叙的场景,和避免重复文本,表格步骤非常有用。
    表格步骤特别有用,可以在场景中设置一些数据集,或者在场景结束时将一组数据与预期结果进行比较。
    不管怎样,当你发现它有用,随意使用这个表格步骤。
    例子:

    Given I have the following contacts in my database
      | name  | phone      |
      | John  | 2233-4455  |
      | Smith | 9988-7766  |
    

    上一篇:Python Lettuce(Cucumber)
    下一篇:Lettuce Introduction

    相关文章

      网友评论

          本文标题:Lettuce Feature(功能)

          本文链接:https://www.haomeiwen.com/subject/mgugsxtx.html