Class Spec::Runner::Configuration

  1. lib/spec/runner/configuration.rb
Parent: Object

Public instance methods

after (*args, &proc)

Alias for prepend_after

append_after (*args, &proc)

Appends a global after block to all example groups. See append_before for filtering semantics.

[show source]
# File lib/spec/runner/configuration.rb, line 135
      def append_after(*args, &proc)
        add_callback(:append_after, *args, &proc)
      end
append_before (*args, &proc)

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)
[show source]
# File lib/spec/runner/configuration.rb, line 121
      def append_before(*args, &proc)
        add_callback(:append_before, *args, &proc)
      end
before (*args, &proc)

Alias for append_before

extend(Some::Helpers)
extend(Some::Helpers, More::Helpers)
extend(My::Helpers, :type => :key)

Works just like include, but extends the example groups with the modules rather than including them.

[show source]
# File lib/spec/runner/configuration.rb, line 88
      def extend(*args)
        include_or_extend(:extend, *args)
      end
include(Some::Helpers)
include(Some::Helpers, More::Helpers)
include(My::Helpers, :type => :key)

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.

For example, the rspec-rails gem/plugin extends Test::Unit::TestCase with Spec::Example::ExampleGroupMethods and includes Spec::Example::ExampleMethods in it. So if you have a module of helper methods for controller examples, you could do this:

config.include(ControllerExampleHelpers, :type => :controller)

Only example groups that have that type will get the modules included:

describe Account, :type => :model do
  # Will *not* include ControllerExampleHelpers
end

describe AccountsController, :type => :controller do
  # *Will* include ControllerExampleHelpers
end
[show source]
# File lib/spec/runner/configuration.rb, line 77
      def include(*args)
        include_or_extend(:include, *args)
      end
mock_with (mock_framework)

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
[show source]
# File lib/spec/runner/configuration.rb, line 31
      def mock_with(mock_framework)
        @mock_framework = case mock_framework
        when Symbol
          mock_framework_path(mock_framework.to_s)
        else
          mock_framework
        end
      end
predicate_matchers ()

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
[show source]
# File lib/spec/runner/configuration.rb, line 100
      def predicate_matchers
        @predicate_matchers ||= {}
      end
prepend_after (*args, &proc)

Prepends a global after block to all example groups. See append_before for filtering semantics.

[show source]
# File lib/spec/runner/configuration.rb, line 128
      def prepend_after(*args, &proc)
        add_callback(:prepend_after, *args, &proc)
      end
prepend_before (*args, &proc)

Prepends a global before block to all example groups. See append_before for filtering semantics.

[show source]
# File lib/spec/runner/configuration.rb, line 106
      def prepend_before(*args, &proc)
        add_callback(:prepend_before, *args, &proc)
      end