module RSpec::Core::SharedExampleGroup

Public Class Methods

registry() click to toggle source
# File lib/rspec/core/shared_example_group.rb, line 70
def self.registry
  @registry ||= Registry.new
end

Public Instance Methods

share_as(name, &block) click to toggle source

@deprecated

# File lib/rspec/core/shared_example_group.rb, line 40
def share_as(name, &block)
  RSpec.deprecate("Rspec::Core::SharedExampleGroup#share_as",
                  :replacement => "RSpec::SharedContext or shared_examples")
  SharedExampleGroup.registry.add_const(self, name, &block)
end
share_examples_for(*args, &block)
Alias for: shared_examples
shared_context(*args, &block)
Alias for: shared_examples
shared_example_groups() click to toggle source
# File lib/rspec/core/shared_example_group.rb, line 46
def shared_example_groups
  SharedExampleGroup.registry.shared_example_groups_for('main', *ancestors[0..-1])
end
shared_examples(*args, &block) click to toggle source

@overload #shared_examples(name, &block) @overload #shared_examples(name, tags, &block)

Wraps the `block` in a module which can then be included in example groups using `include_examples`, `include_context`, or `it_behaves_like`.

@param [String] name to match when looking up this shared group @param block to be eval'd in a nested example group generated by `it_behaves_like`

@example

shared_examples "auditable" do
  it "stores an audit record on save!" do
    lambda { auditable.save! }.should change(Audit, :count).by(1)
  end
end

class Account do
  it_behaves_like "auditable" do
    def auditable; Account.new; end
  end
end

@see ExampleGroup.it_behaves_like @see RSpec::Core::ExampleGroup.include_examples @see RSpec::Core::ExampleGroup.include_context

# File lib/rspec/core/shared_example_group.rb, line 31
def shared_examples(*args, &block)
  SharedExampleGroup.registry.add_group(self, *args, &block)
end
shared_examples_for(*args, &block)
Alias for: shared_examples