Module RSpec::Core::Subject::ExampleMethods
In: lib/rspec/core/subject.rb

Methods

should   should_not   subject  

Public Instance methods

When `should` is called with no explicit receiver, the call is delegated to the object returned by `subject`. Combined with an implicit subject this supports very concise expressions.

@example

  describe Person do
    it { should be_eligible_to_vote }
  end

@see subject

Just like `should`, `should_not` delegates to the subject (implicit or explicit) of the example group.

@example

  describe Person do
    it { should_not be_eligible_to_vote }
  end

@see subject

Returns the example group‘s `subject`.

@note `subject` was contributed by Joe Ferris to support the one-liner

  syntax embraced by shoulda matchers:

      describe Widget do
        it { should validate_presence_of(:name) }
      end

  While the examples below demonstrate how to use `subject`
  explicitly in examples, we recommend that you define a method with
  an intention revealing name instead.

@example

  # explicit declaration of subject
  describe Person do
    subject { Person.new(:birthdate => 19.years.ago) }
    it "should be eligible to vote" do
      subject.should be_eligible_to_vote
      # ^ ^ explicit reference to subject not recommended
    end
  end

  # implicit subject => { Person.new }
  describe Person do
    it "should be eligible to vote" do
      subject.should be_eligible_to_vote
      # ^ ^ explicit reference to subject not recommended
    end
  end

  # one-liner syntax - should is invoked on subject
  describe Person do
    it { should be_eligible_to_vote }
  end

@see ExampleGroupMethods#subject @see should

[Validate]