Method: RSpec::Core::Sandbox.sandboxed

Defined in:
lib/rspec/core/sandbox.rb

.sandboxedvoid

Execute a provided block with RSpec global objects (configuration, world) reset. This is used to test RSpec with RSpec.

When calling this the configuration is passed into the provided block. Use this to set custom configs for your sandboxed examples.

Sandbox.sandboxed do |config|
  config.before(:context) { RSpec.current_example = nil }
end

21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/rspec/core/sandbox.rb', line 21

def self.sandboxed
  orig_config  = RSpec.configuration
  orig_world   = RSpec.world
  orig_example = RSpec.current_example

  RSpec.configuration = RSpec::Core::Configuration.new
  RSpec.world         = RSpec::Core::World.new(RSpec.configuration)

  yield RSpec.configuration
ensure
  RSpec.configuration   = orig_config
  RSpec.world           = orig_world
  RSpec.current_example = orig_example
end