Ruby: A short summary of available hooks in Cucumber

Updated . Posted . Visible to the public.

Here is a short summary of Cucumber hooks in Ruby taken from https://github.com/cucumber/cucumber-ruby Show archive.org snapshot . Note that the BeforeStep is currently not existing in the Ruby implementation of Cucumber.

Before hooks run before the first step of each scenario.

Before do |scenario|
  ...
end

After hooks run after the last step of each scenario, even when the step result is failed, undefined, pending or skipped.

After do |scenario|
  ...
end
Around do |scenario, block|
  ...
  block.call
  ...
end
AfterStep do |scenario|
  ...
end

You can restrict the hooks to one or more tags:

Before("@slow") do |scenario|
  ...
end

A global hook will run once before any scenario is run.

# env.rb
...

BeforeAll hooks will run before any scenario is executed.

BeforeAll do
  ...
end

You can include code to Cucumber in the World module without polluting the application namespace (example from https://jam.cucumber.io/):

features/support/helpers.rb

module Helpers
  def helper_method
    42
  end
end

World(Helpers)

features/step_definitions/step.rb

Then /^the helper method is called$/ do
  expect(helper_method).to eql(42)
end
Last edit
Emanuel
License
Source code in this card is licensed under the MIT License.
Posted by Emanuel to makandra dev (2020-10-21 09:45)