Module Spec::Example::ExampleGroupMethods
In: vendor/plugins/rspec/lib/spec/example/example_group_methods.rb

Methods

Included Modules

Spec::Plugins::MockFramework

Attributes

described_module  [R] 
description_args  [R] 
description_options  [R] 
description_text  [R] 
matcher_class  [RW] 
registration_binding_block  [R] 
spec_path  [R] 

Public Class methods

[Source]

    # File vendor/plugins/rspec/lib/spec/example/example_group_methods.rb, line 8
 8:         def description_text(*args)
 9:           args.inject("") do |result, arg|
10:             result << " " unless (result == "" || arg.to_s =~ /^(\s|\.|#)/)
11:             result << arg.to_s
12:           end
13:         end

Public Instance methods

after(*args, &block)

Alias for prepend_after

Registers a block to be executed after each example. This method appends block to existing after blocks.

[Source]

     # File vendor/plugins/rspec/lib/spec/example/example_group_methods.rb, line 209
209:       def append_after(*args, &block)
210:         scope, options = scope_and_options(*args)
211:         parts = after_parts_from_scope(scope)
212:         parts << block
213:       end

Registers a block to be executed before each example. This method appends block to existing before blocks.

[Source]

     # File vendor/plugins/rspec/lib/spec/example/example_group_methods.rb, line 191
191:       def append_before(*args, &block)
192:         scope, options = scope_and_options(*args)
193:         parts = before_parts_from_scope(scope)
194:         parts << block
195:       end
before(*args, &block)

Alias for append_before

context(*args, &example_group_block)

Alias for describe

Makes the describe/it syntax available from a class. For example:

  class StackSpec < Spec::ExampleGroup
    describe Stack, "with no elements"

    before
      @stack = Stack.new
    end

    it "should raise on pop" do
      lambda{ @stack.pop }.should raise_error
    end
  end

[Source]

    # File vendor/plugins/rspec/lib/spec/example/example_group_methods.rb, line 38
38:       def describe(*args, &example_group_block)
39:         args << {} unless Hash === args.last
40:         if example_group_block
41:           params = args.last
42:           params[:spec_path] = eval("caller(0)[1]", example_group_block) unless params[:spec_path]
43:           if params[:shared]
44:             SharedExampleGroup.new(*args, &example_group_block)
45:           else
46:             self.subclass("Subclass") do
47:               describe(*args)
48:               module_eval(&example_group_block)
49:             end
50:           end
51:         else
52:           set_description(*args)
53:           before_eval
54:           self
55:         end
56:       end

[Source]

     # File vendor/plugins/rspec/lib/spec/example/example_group_methods.rb, line 145
145:       def described_type
146:         description_parts.find {|part| part.is_a?(Module)}
147:       end

[Source]

     # File vendor/plugins/rspec/lib/spec/example/example_group_methods.rb, line 136
136:       def description
137:         result = ExampleGroupMethods.description_text(*description_parts)
138:         if result.nil? || result == ""
139:           return to_s
140:         else
141:           result
142:         end
143:       end

[Source]

    # File vendor/plugins/rspec/lib/spec/example/example_group_methods.rb, line 18
18:       def inherited(klass)
19:         super
20:         klass.register {}
21:         Spec::Runner.register_at_exit_hook
22:       end

Creates an instance of Spec::Example::Example and adds it to a collection of examples of the current example group.

[Source]

     # File vendor/plugins/rspec/lib/spec/example/example_group_methods.rb, line 108
108:       def it(description=nil, &implementation)
109:         e = new(description, &implementation)
110:         example_objects << e
111:         e
112:       end

Use this to pull in examples from shared example groups. See Spec::Runner for information about shared example groups.

[Source]

    # File vendor/plugins/rspec/lib/spec/example/example_group_methods.rb, line 61
61:       def it_should_behave_like(shared_example_group)
62:         case shared_example_group
63:         when SharedExampleGroup
64:           include shared_example_group
65:         else
66:           example_group = SharedExampleGroup.find_shared_example_group(shared_example_group)
67:           unless example_group
68:             raise RuntimeError.new("Shared Example Group '#{shared_example_group}' can not be found")
69:           end
70:           include(example_group)
71:         end
72:       end

Dynamically generates a custom matcher that will match a predicate on your class. RSpec provides a couple of these out of the box:

  exist (or state expectations)
    File.should exist("path/to/file")

  an_instance_of (for mock argument constraints)
    mock.should_receive(:message).with(an_instance_of(String))

Examples

  class Fish
    def can_swim?
      true
    end
  end

  describe Fish do
    predicate_matchers[:swim] = :can_swim?
    it "should swim" do
      Fish.new.should swim
    end
  end

[Source]

     # File vendor/plugins/rspec/lib/spec/example/example_group_methods.rb, line 102
102:       def predicate_matchers
103:         @predicate_matchers ||= {:an_instance_of => :is_a?}
104:       end

Registers a block to be executed after each example. This method prepends block to existing after blocks.

[Source]

     # File vendor/plugins/rspec/lib/spec/example/example_group_methods.rb, line 200
200:       def prepend_after(*args, &block)
201:         scope, options = scope_and_options(*args)
202:         parts = after_parts_from_scope(scope)
203:         parts.unshift(block)
204:       end

Registers a block to be executed before each example. This method prepends block to existing before blocks.

[Source]

     # File vendor/plugins/rspec/lib/spec/example/example_group_methods.rb, line 183
183:       def prepend_before(*args, &block)
184:         scope, options = scope_and_options(*args)
185:         parts = before_parts_from_scope(scope)
186:         parts.unshift(block)
187:       end

[Source]

     # File vendor/plugins/rspec/lib/spec/example/example_group_methods.rb, line 253
253:       def register(&registration_binding_block)
254:         @registration_binding_block = registration_binding_block
255:         Spec::Runner.options.add_example_group self
256:       end

[Source]

     # File vendor/plugins/rspec/lib/spec/example/example_group_methods.rb, line 262
262:       def registration_backtrace
263:         eval("caller", registration_binding_block)
264:       end

[Source]

     # File vendor/plugins/rspec/lib/spec/example/example_group_methods.rb, line 215
215:       def remove_after(scope, &block)
216:         after_each_parts.delete(block)
217:       end

[Source]

     # File vendor/plugins/rspec/lib/spec/example/example_group_methods.rb, line 122
122:       def run
123:         examples = examples_to_run
124:         reporter.add_example_group(self) unless examples_to_run.empty?
125:         return true if examples.empty?
126:         return dry_run(examples) if dry_run?
127: 
128:         plugin_mock_framework
129:         define_methods_from_predicate_matchers
130: 
131:         success, before_all_instance_variables = run_before_all
132:         success, after_all_instance_variables  = execute_examples(success, before_all_instance_variables, examples)
133:         success                                = run_after_all(success, after_all_instance_variables)
134:       end

[Source]

     # File vendor/plugins/rspec/lib/spec/example/example_group_methods.rb, line 272
272:       def run_after_each(example)
273:         execute_in_class_hierarchy(:superclass_first) do |example_group|
274:           example.eval_each_fail_slow(example_group.after_each_parts)
275:         end
276:       end

[Source]

     # File vendor/plugins/rspec/lib/spec/example/example_group_methods.rb, line 266
266:       def run_before_each(example)
267:         execute_in_class_hierarchy do |example_group|
268:           example.eval_each_fail_fast(example_group.before_each_parts)
269:         end
270:       end

[Source]

     # File vendor/plugins/rspec/lib/spec/example/example_group_methods.rb, line 157
157:       def set_description(*args)
158:         args, options = args_and_options(*args)
159:         @description_args = args
160:         @description_options = options
161:         @description_text = ExampleGroupMethods.description_text(*args)
162:         @spec_path = File.expand_path(options[:spec_path]) if options[:spec_path]
163:         if described_type.class == Module
164:           @described_module = described_type
165:         end
166:         self
167:       end

Deprecated. Use before(:each)

[Source]

     # File vendor/plugins/rspec/lib/spec/example/example_group_methods.rb, line 220
220:       def setup(&block)
221:         before(:each, &block)
222:       end
specify(description=nil, &implementation)

Alias for it

Deprecated. Use after(:each)

[Source]

     # File vendor/plugins/rspec/lib/spec/example/example_group_methods.rb, line 225
225:       def teardown(&block)
226:         after(:each, &block)
227:       end

Use this to temporarily disable an example.

[Source]

     # File vendor/plugins/rspec/lib/spec/example/example_group_methods.rb, line 117
117:       def xit(description=nil, opts={}, &block)
118:         Kernel.warn("Example disabled: #{description}")
119:       end
xspecify(description=nil, opts={}, &block)

Alias for xit

[Validate]