Sha256: bed631508e755ca662ae3855cec4a0a3185876bc97ef0b0d9bf7a9ae623bfffd

Contents?: true

Size: 1.87 KB

Versions: 1

Compression:

Stored size: 1.87 KB

Contents

Feature: Execute Steps within a Step Function (Nested Steps)

    As a tester
    I want to reuse existing steps and call several ones within another step
    So that I can comply with the the DRY principle.

  Scenario: Execute a number of simple steps (GOOD CASE)
    Given a new working directory
    And   a file named "features/steps/steps.py" with:
      """
      from behave import given, when, then

      @given(u'I go to the supermarket')
      def step_given_I_go_to_the_supermarket(context):
          context.shopping_cart = {}

      @when(u'I buy {amount:n} {item:w}')
      def step_when_I_buy(context, amount, item):
          assert amount >= 0
          if not item in context.shopping_cart:
              context.shopping_cart[item] = 0
          context.shopping_cart[item] += amount

      # -- HERE: Is the interesting functionality.
      @when(u'I buy the usual things')
      def step_when_I_buy_the_usual_things(context):
          context.execute_steps(u'''
              When I buy 2 apples
              And  I buy 3 bananas
          ''')

      @then(u'I have {amount:n} {item:w}')
      def step_then_I_have(context, amount, item):
          actual = context.shopping_cart.get(item, 0)
          assert amount == actual
      """
    And   a file named "features/use_nested_steps.feature" with:
      """
      Feature:
        Scenario:
          Given I go to the supermarket
          When  I buy the usual things
          Then  I have 2 apples
          And   I have 3 bananas
      """
    When I run "behave -f plain features/use_nested_steps.feature"
    Then it should pass with:
      """
      1 feature passed, 0 failed, 0 skipped
      1 scenario passed, 0 failed, 0 skipped
      4 steps passed, 0 failed, 0 skipped, 0 undefined
      """

  @not_implemented
  Scenario: A Nested Step Fails with Assert

  @not_implemented
  Scenario: A Nested Step Fails with Exception

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
busser-behave-0.1.3 vendor/behave/features/step.execute_steps.feature