Module: RSpec::Core::DSL

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

Overview

DSL defines methods to group examples, most notably describe, and exposes them as class methods of RSpec. They can also be exposed globally (on main and instances of Module) through the Configuration option expose_dsl_globally.

By default the methods describe, context and example_group are exposed. These methods define a named context for one or more examples. The given block is evaluated in the context of a generated subclass of ExampleGroup.

Examples:

RSpec.describe "something" do
  context "when something is a certain way" do
    it "does something" do
      # example code goes here
    end
  end
end

Class Method Summary collapse

Class Method Details

.expose_globally!void

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Adds the describe method to Module and the top level binding.



54
55
56
57
58
59
60
61
62
# File 'lib/rspec/core/dsl.rb', line 54

def self.expose_globally!
  return if exposed_globally?

  example_group_aliases.each do |method_name|
    expose_example_group_alias_globally(method_name)
  end

  @exposed_globally = true
end

.remove_globally!void

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Removes the describe method from Module and the top level binding.



66
67
68
69
70
71
72
73
74
# File 'lib/rspec/core/dsl.rb', line 66

def self.remove_globally!
  return unless exposed_globally?

  example_group_aliases.each do |method_name|
    change_global_dsl { undef_method method_name }
  end

  @exposed_globally = false
end