Defining arbitrary helper methods

You can define methods in any example group using Ruby’s def keyword or define_method method. These helper methods are exposed to examples in the group in which they are defined and groups nested within that group, but not parent or sibling groups.

Use a method defined in the same group

Given a file named “example_spec.rb” with:

RSpec.describe "an example" do
  def help
    :available
  end

  it "has access to methods defined in its group" do
    expect(help).to be(:available)
  end
end

When I run rspec example_spec.rb

Then the examples should all pass.

Use a method defined in a parent group

Given a file named “example_spec.rb” with:

RSpec.describe "an example" do
  def help
    :available
  end

  describe "in a nested group" do
    it "has access to methods defined in its parent group" do
      expect(help).to be(:available)
    end
  end
end

When I run rspec example_spec.rb

Then the examples should all pass.