Module: Spec::Example::Subject::ExampleMethods
- Included in:
- ExampleMethods
- Defined in:
- lib/spec/example/subject.rb
Instance Method Summary collapse
- #__should_for_example_group__ ⇒ Object
- #__should_not_for_example_group__ ⇒ Object
-
#should(matcher = nil, message = nil) ⇒ Object
When
shouldis called with no explicit receiver, the call is delegated to the object returned bysubject. -
#should_not(matcher = nil, message = nil) ⇒ Object
Just like
should,should_notdelegates to the subject (implicit or explicit) of the example group. -
#subject ⇒ Object
Returns the subject defined in ExampleGroupMethods#subject.
Instance Method Details
#__should_for_example_group__ ⇒ Object
55 |
# File 'lib/spec/example/subject.rb', line 55 alias_method :__should_for_example_group__, :should |
#__should_not_for_example_group__ ⇒ Object
56 |
# File 'lib/spec/example/subject.rb', line 56 alias_method :__should_not_for_example_group__, :should_not |
#should(matcher = nil, message = nil) ⇒ Object
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
96 97 98 |
# File 'lib/spec/example/subject.rb', line 96 def should(matcher=nil, =nil) self == subject ? self.__should_for_example_group__(matcher) : subject.should(matcher,) end |
#should_not(matcher = nil, message = nil) ⇒ Object
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
108 109 110 |
# File 'lib/spec/example/subject.rb', line 108 def should_not(matcher=nil, =nil) self == subject ? self.__should_not_for_example_group__(matcher) : subject.should_not(matcher,) end |
#subject ⇒ Object
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
82 83 84 |
# File 'lib/spec/example/subject.rb', line 82 def subject @subject ||= instance_eval(&self.class.subject) end |