Module: RSpec::Core::Subject::ExampleMethods
- Included in:
- ExampleGroup
- Defined in:
- lib/rspec/core/subject.rb
Instance Method Summary collapse
-
#should(matcher = nil, message = nil) ⇒ Object
When
should
is 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_not
delegates to the subject (implicit or explicit) of the example group. -
#subject ⇒ Object
Returns the example group's
subject
.
Instance Method Details
#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 this supports very concise expressions.
63 64 65 |
# File 'lib/rspec/core/subject.rb', line 63 def should(matcher=nil, =nil) RSpec::Expectations::PositiveExpectationHandler.handle_matcher(subject, 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.
77 78 79 |
# File 'lib/rspec/core/subject.rb', line 77 def should_not(matcher=nil, =nil) RSpec::Expectations::NegativeExpectationHandler.handle_matcher(subject, matcher, ) end |
#subject ⇒ Object
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.
Returns the example group's subject
.
44 45 46 47 48 49 50 |
# File 'lib/rspec/core/subject.rb', line 44 def subject if defined?(@original_subject) @original_subject else @original_subject = instance_eval(&self.class.subject) end end |