Method: RSpec::Core::MemoizedHelpers#subject
- Defined in:
- lib/rspec/core/memoized_helpers.rb
#subject ⇒ void
Note:
subject
was contributed by Joe Ferris to support the one-liner
syntax embraced by shoulda matchers:
RSpec.describe Widget do
it { is_expected.to validate_presence_of(:name) }
# or
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.
Note:
Because subject
is designed to create state that is reset
between each example, and before(:context)
is designed to setup
state that is shared across all examples in an example group,
subject
is not intended to be used in a before(:context)
hook.
57 58 59 60 61 62 |
# File 'lib/rspec/core/memoized_helpers.rb', line 57 def subject __memoized.fetch_or_store(:subject) do described = described_class || self.class..fetch(:description_args).first Class === described ? described.new : described end end |