Module: RSpec::Core::Subject::InstanceMethods
- Included in:
- ExampleGroup
- Defined in:
- lib/rspec/core/subject.rb
Instance Method Summary collapse
-
#subject ⇒ Object
Returns the subject defined by the example group.
Instance Method Details
#subject ⇒ Object
Returns the subject defined by the example group. 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
30 31 32 33 34 35 36 |
# File 'lib/rspec/core/subject.rb', line 30 def subject if defined?(@original_subject) @original_subject else @original_subject = instance_eval(&self.class.subject) end end |