module RSpec::Proverbs::ExampleGroup

Public Instance Methods

And(message, options = {}, &block) click to toggle source
# File lib/proverbs/rspec/example_group.rb, line 30
def And(message, options = {}, &block)
  action :and, message, options, &block
end
But(message, options = {}, &block) click to toggle source
# File lib/proverbs/rspec/example_group.rb, line 34
def But(message, options = {}, &block)
  action :but, message, options, &block
end
Given(message, options = {}, &block) click to toggle source
# File lib/proverbs/rspec/example_group.rb, line 18
def Given(message, options = {}, &block)
  action :given, message, options, &block
end
Then(message, options = {}, &block) click to toggle source
# File lib/proverbs/rspec/example_group.rb, line 26
def Then(message, options = {}, &block)
  action :then, message, options, &block
end
When(message, options = {}, &block) click to toggle source
# File lib/proverbs/rspec/example_group.rb, line 22
def When(message, options = {}, &block)
  action :when, message, options, &block
end
example(message, options = {}, &block) click to toggle source
# File lib/proverbs/rspec/example_group.rb, line 62
def example(message, options = {}, &block)
  action :example, message, options, &block
end
fact(message, options = {}, &block) click to toggle source
# File lib/proverbs/rspec/example_group.rb, line 42
def fact(message, options = {}, &block)
  action :fact, message, options, &block
end
include_steps(*args) click to toggle source

In Rspec, example group bodies are delimited by 'describe' and 'context' methods. These encapsulate examples, which are delimited by 'it' methods. Example groups are evaluated in the context of an ExampleGroup instance. Individual examples are evaluated in the context of an instance of the ExampleGroup to which they belong.

# File lib/proverbs/rspec/example_group.rb, line 10
def include_steps(*args)
  name = args.shift
  shared_block = ::RSpec.world.shared_example_steps[name]
  shared_block || raise(ArgumentError,
    "Could not find shared steps #{name.inspect}")
  instance_exec(*args, &shared_block)
end
it(message, options = {}, &block) click to toggle source
# File lib/proverbs/rspec/example_group.rb, line 54
def it(message, options = {}, &block)
  action :it, message, options, &block
end
rule(message, options = {}, &block) click to toggle source
# File lib/proverbs/rspec/example_group.rb, line 38
def rule(message, options = {}, &block)
  action :rule, message, options, &block
end
specify(message, options = {}, &block) click to toggle source
# File lib/proverbs/rspec/example_group.rb, line 58
def specify(message, options = {}, &block)
  action :specify, message, options, &block
end
step(message, options = {}, &block) click to toggle source
# File lib/proverbs/rspec/example_group.rb, line 50
def step(message, options = {}, &block)
  action :step, message, options, &block
end
test(message, options = {}, &block) click to toggle source
# File lib/proverbs/rspec/example_group.rb, line 46
def test(message, options = {}, &block)
  action :test, message, options, &block
end

Private Instance Methods

action(type, message, options = {}) { || ... } click to toggle source
# File lib/proverbs/rspec/example_group.rb, line 68
def action(type, message, options = {}, &_block)
  ::RSpec.world.reporter.example_step_started(self, type, message, options)
  options = { pending: true } if options == :pending

  if block_given? && !options[:pending]
    begin
      yield
    rescue StandardError => e
      ::RSpec.world.reporter.example_step_failed(self, type, message, options)
      raise e
    end
    ::RSpec.world.reporter.example_step_passed(self, type, message, options)
  else
    ::RSpec.world.reporter.example_step_pending(self, type, message, options)
  end
end