module RSpec::Stepwise

Provides DSL for defining a series of steps.

@example

RSpec.describe 'user registration and sign in' do
  stepwise do
    step 'register' do
      api.register(user)
      mailbox.confirm(user)
    end

    step 'sign in' do
      token = api.sign_in(user)
      expect(token).not_to be expired
    end
  end
end

Constants

VERSION

Public Instance Methods

stepwise(name = nil, *args, &block) click to toggle source

Defines new series of steps. Supports the same arguments as `RSpec.describe`. @see RSpec.describe

# File lib/rspec/stepwise.rb, line 24
def stepwise(name = nil, *args, &block)
  if args.last.is_a?(Hash)
    args.last[:order] = :defined
  else
    args << { order: :defined }
  end
  describe(name, *args) do
    Builder.new(self).instance_eval(&block)
  end
end