enkessler/cucumber_analytics

View on GitHub
testing/cucumber/features/modeling/outline_modeling.feature

Summary

Maintainability
Test Coverage
Feature: Outline elements can be modeled.


  Acceptance criteria

    1. All conceptual pieces of an outline can be modeled:
      - the outline's name
      - the outline's description
      - the outline's steps
      - the outline's tags
      - the outline's applied tags
      - the outline's example blocks
      - the outline's source line
      - the outline's raw element

    2. Outlines can be outputted in a convenient form


  Background: Test file setup.
    Given the following feature file:
    """
    @a_feature_level_tag
    Feature:

      @outline_tag
      Scenario Outline: The scenario outline's name.
            
        Some outline description.
    
      Some more.
          Even more.

        Given a <setup> step
        When an action step
        Then a <verification> step

      Examples: example 1
        | setup | verification |
        | x     | y            |
      Examples: example 2
        | setup | verification |
        | a     | b            |
    """
    And parameter delimiters of "*" and "*"
    When the file is read


  Scenario: The raw outline element is modeled.
    Then the test correctly stores its underlying implementation

  Scenario: The outline source line is modeled.
    Then the test is found to have the following properties:
      | source_line | 5 |

  Scenario: The outline name is modeled.
    Then the test is found to have the following properties:
      | name | The scenario outline's name. |

  Scenario: The outline description is modeled.
    Then the test has the following description:
      """
          
      Some outline description.

      Some more.
        Even more.
      """

  Scenario: The outline steps are modeled.
    Then the test steps are as follows:
      | a <setup> step        |
      | an action step        |
      | a <verification> step |

  Scenario: The outline tags are modeled.
    Then the test is found to have the following tags:
      | @outline_tag |

  Scenario: The outline applied tags are modeled.
    Then the test is found to have the following applied tags:
      | @a_feature_level_tag |

  Scenario: The outline example blocks are modeled.
    And the test example blocks are as follows:
      | example 1 |
      | example 2 |

  Scenario: Convenient output of an an outline
    Then the outline has convenient output