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

See Also:

Class Method Summary (collapse)

Class Method Details

+ (void) expose_globally!

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

+ (void) remove_globally!

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