module RSpec::Core::SharedExampleGroup
def shared_examples *args, &block
- See: ExampleGroup.include_context -
See: ExampleGroup.include_examples -
See: ExampleGroup.it_behaves_like -
Parameters:
-
block
() -- to be eval'd in a nested example group generated by `it_behaves_like`
-
name
(String
) -- to match when looking up this shared group
Overloads:
-
shared_examples(name, tags, &block)
-
shared_examples(name, &block)
def shared_examples *args, &block if key? args.first key = args.shift raise_key_taken key if key_taken? key RSpec.world.shared_example_groups[key] = block end unless args.empty? mod = Module.new (class << mod; self; end).send :define_method, :extended do |host| host.class_eval(&block) end RSpec.configuration.extend mod, *args end end