Module: Spec::Example::Subject::ExampleMethods

Module | Spec::Example::Subject::ExampleMethods
In: | lib/spec/example/subject.rb

### Methods

should should_not subject

### External Aliases

should | -> | __should_for_example_group__
should_not | -> | __should_not_for_example_group__

### Public Instance methods

should(matcher=nil, message=nil)

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

## Examples

      describe Person do
        it { should be_eligible_to_vote }
      end

should_not(matcher=nil, message=nil)

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

## Examples

      describe Person do
        it { should_not be_eligible_to_vote }
      end

subject()

Returns the subject defined in ExampleGroupMethods#subject. The subject block is only executed once per example, the result of which is cached and returned by any subsequent calls to `subject`.

If a class is passed to `describe` and no subject is explicitly declared in the example group, then `subject` will return a new instance of that class.

## Examples

      # explicit subject defined by the subject method
      describe Person do
        subject { Person.new(:birthdate => 19.years.ago) }
        it "should be eligible to vote" do
          subject.should be_eligible_to_vote
        end
      end

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

[Validate]