|
- Feature: One line step definitions
-
- Everybody knows you can do step definitions in Cucumber
- but did you know you can do this?
-
- Scenario: Call a method in World directly from a step def
- Given a file named "features/step_definitions/steps.rb" with:
- """
- module Driver
- def do_action
- @done = true
- end
-
- def assert_done
- expect(@done).to be true
- end
- end
- World(Driver)
-
- When /I do the action/, :do_action
- Then /The action should be done/, :assert_done
- """
- And a file named "features/action.feature" with:
- """
- Feature:
- Scenario:
- When I do the action
- Then the action should be done
- """
- When I run `cucumber`
- Then it should pass
-
- Scenario: Call a method on an actor in the World directly from a step def
- Given a file named "features/step_definitions/steps.rb" with:
- """
- class Thing
- def do_action
- @done = true
- end
-
- def assert_done
- expect(@done).to be true
- end
- end
-
- module Driver
- def thing
- @thing ||= Thing.new
- end
- end
- World(Driver)
-
- When /I do the action to the thing/, :do_action, :on => lambda { thing }
- Then /The thing should be done/, :assert_done, :on => lambda { thing }
- """
- And a file named "features/action.feature" with:
- """
- Feature:
- Scenario:
- When I do the action to the thing
- Then the thing should be done
- """
- When I run `cucumber`
- Then it should pass
|