Sha256: 1e3c64fdb69c35be3ed15f0e23ca1e6157143be42d561ab7995e47c51d947eee

Contents?: true

Size: 1.47 KB

Versions: 1

Compression:

Stored size: 1.47 KB

Contents

module RSpec
  module ExampleSteps
    module ExampleGroup
      def include_steps(*args)
        name = args.shift 
        shared_block = RSpec.world.shared_example_steps[name]
        shared_block or raise ArgumentError, "Could not find shared steps #{name.inspect}"
        instance_eval_with_args(*args, &shared_block)
      end

      def Given(message, options = {})
        RSpec.world.reporter.example_step_started(self, :given, message, options)
        if block_given? && !options[:pending]
          yield
          RSpec.world.reporter.example_step_passed(self, :given, message, options)
        else
          RSpec.world.reporter.example_step_pending(self, :given, message, options)
        end
      end

      def When(message, options = {})
        RSpec.world.reporter.example_step_started(self, :when, message, options)
        if block_given? && !options[:pending]
          yield
          RSpec.world.reporter.example_step_passed(self, :when, message, options)
        else
          RSpec.world.reporter.example_step_pending(self, :when, message, options)
        end
      end

      def Then(message, options = {})
        RSpec.world.reporter.example_step_started(self, :then, message, options)
        if block_given? && !options[:pending]
          yield
          RSpec.world.reporter.example_step_passed(self, :then, message, options)
        else
          RSpec.world.reporter.example_step_pending(self, :then, message, options)
        end
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rspec-example_steps-0.1.1 lib/rspec/example_steps/example_group.rb