| Class | Spec::Example::Configuration |
| In: |
lib/spec/example/configuration.rb
|
| Parent: | Object |
Appends a global after block to all example groups. See append_before for filtering semantics.
# File lib/spec/example/configuration.rb, line 134
134: def append_after(*args, &proc)
135: scope, options = scope_and_options(*args)
136: example_group = ExampleGroupFactory.get(
137: get_type_from_options(options)
138: )
139: example_group.append_after(scope, &proc)
140: end
Appends a global before block to all example groups.
If you want to restrict the block to a subset of all the example groups then specify this in a Hash as the last argument:
config.prepend_before(:all, :type => :farm)
or
config.prepend_before(:type => :farm)
# File lib/spec/example/configuration.rb, line 112
112: def append_before(*args, &proc)
113: scope, options = scope_and_options(*args)
114: example_group = ExampleGroupFactory.get(
115: get_type_from_options(options)
116: )
117: example_group.append_before(scope, &proc)
118: end
Declares modules to be included in multiple example groups (describe blocks). With no :type, the modules listed will be included in all example groups. Use :type to restrict the inclusion to a subset of example groups. The value assigned to :type should be a key that maps to a class that is either a subclass of Spec::Example::ExampleGroup or extends Spec::Example::ExampleGroupMethods and includes Spec::Example::ExampleMethods
config.include(My::Pony, My::Horse, :type => :farm)
Only example groups that have that type will get the modules included:
describe "Downtown", :type => :city do
# Will *not* get My::Pony and My::Horse included
end
describe "Old Mac Donald", :type => :farm do
# *Will* get My::Pony and My::Horse included
end
# File lib/spec/example/configuration.rb, line 69
69: def include(*args)
70: args << {} unless Hash === args.last
71: modules, options = args_and_options(*args)
72: required_example_group = get_type_from_options(options)
73: required_example_group = required_example_group.to_sym if required_example_group
74: modules.each do |mod|
75: ExampleGroupFactory.get(required_example_group).send(:include, mod)
76: end
77: end
Chooses what mock framework to use. Example:
Spec::Runner.configure do |config|
config.mock_with :rspec, :mocha, :flexmock, or :rr
end
To use any other mock framework, you‘ll have to provide your own adapter. This is simply a module that responds to the following methods:
setup_mocks_for_rspec verify_mocks_for_rspec teardown_mocks_for_rspec.
These are your hooks into the lifecycle of a given example. RSpec will call setup_mocks_for_rspec before running anything else in each Example. After executing the after methods, RSpec will then call verify_mocks_for_rspec and teardown_mocks_for_rspec (this is guaranteed to run even if there are failures in verify_mocks_for_rspec).
Once you‘ve defined this module, you can pass that to mock_with:
Spec::Runner.configure do |config|
config.mock_with MyMockFrameworkAdapter
end
# File lib/spec/example/configuration.rb, line 31
31: def mock_with(mock_framework)
32: @mock_framework = case mock_framework
33: when Symbol
34: mock_framework_path(mock_framework.to_s)
35: else
36: mock_framework
37: end
38: end
Defines global predicate matchers. Example:
config.predicate_matchers[:swim] = :can_swim?
This makes it possible to say:
person.should swim # passes if person.can_swim? returns true
# File lib/spec/example/configuration.rb, line 87
87: def predicate_matchers
88: @predicate_matchers ||= {}
89: end
Prepends a global after block to all example groups. See append_before for filtering semantics.
# File lib/spec/example/configuration.rb, line 123
123: def prepend_after(*args, &proc)
124: scope, options = scope_and_options(*args)
125: example_group = ExampleGroupFactory.get(
126: get_type_from_options(options)
127: )
128: example_group.prepend_after(scope, &proc)
129: end
Prepends a global before block to all example groups. See append_before for filtering semantics.
# File lib/spec/example/configuration.rb, line 93
93: def prepend_before(*args, &proc)
94: scope, options = scope_and_options(*args)
95: example_group = ExampleGroupFactory.get(
96: get_type_from_options(options)
97: )
98: example_group.prepend_before(scope, &proc)
99: end