3.3. Step - 02 : Run with undefined steps

As of now, we only have the test specifications as defined earlier.

# features/sample-addition.feature

Feature: Simple Addition

    Showcase simple addition for the BDD Book.

    Scenario: Addition of single digit numbers
        Given I have '1' and '3'
        When I add them
        Then The result must be '4'

    Scenario: Addition of double digit numbers
        Given I have '70' and '29'
        When I add them
        Then The result must be '99'

When we run behave, it would have nothing to test actually, but still let’s run it:

behave --no-timings --no-source

As you can see, it has already tried to run few tests, but shows that few have filed, and we have undefined steps.

Feature: Simple Addition
  Showcase simple addition for the BDD Book.
  Scenario: Addition of single digit numbers 
    Given I have '1' and '3'
    When I add them
    Then The result must be '4'

  Scenario: Addition of double digit numbers 
    Given I have '70' and '29'
    When I add them
    Then The result must be '99'


Failing scenarios:
  features/simple-addition.feature:7  Addition of single digit numbers
  features/simple-addition.feature:12  Addition of double digit numbers

0 features passed, 1 failed, 0 skipped
0 scenarios passed, 2 failed, 0 skipped
0 steps passed, 0 failed, 0 skipped, 6 undefined
Took 0m0.000s

And it also gives us some kind of hint what we have to do and what is missing:


You can implement step definitions for undefined steps with these snippets:

@given(u'I have \'1\' and \'3\'')
def step_impl(context):
    raise NotImplementedError(u'STEP: Given I have \'1\' and \'3\'')


@when(u'I add them')
def step_impl(context):
    raise NotImplementedError(u'STEP: When I add them')


@then(u'The result must be \'4\'')
def step_impl(context):
    raise NotImplementedError(u'STEP: Then The result must be \'4\'')


@given(u'I have \'70\' and \'29\'')
def step_impl(context):
    raise NotImplementedError(u'STEP: Given I have \'70\' and \'29\'')


@then(u'The result must be \'99\'')
def step_impl(context):
    raise NotImplementedError(u'STEP: Then The result must be \'99\'')