Module: RSpec::Core::MemoizedHelpers
- Included in:
- ExampleGroup
- Defined in:
- lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/memoized_helpers.rb
Overview
This module is included in ExampleGroup, making the methods available to be called from within example blocks.
Defined Under Namespace
Modules: ClassMethods Classes: ContextHookMemoized, NonThreadSafeMemoized, ThreadsafeMemoized
Instance Method Summary collapse
-
#is_expected ⇒ Object
Wraps the ‘subject` in `expect` to make it the target of an expectation.
-
#should(matcher = nil, message = nil) ⇒ Object
When ‘should` is called with no explicit receiver, the call is delegated to the object returned by `subject`.
-
#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
Instance Method Details
#is_expected ⇒ Object
This only works if you are using rspec-expectations.
Wraps the ‘subject` in `expect` to make it the target of an expectation. Designed to read nicely for one-liners.
120 121 122 |
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/memoized_helpers.rb', line 120 def is_expected expect(subject) end |
#should(matcher = nil, message = nil) ⇒ Object
This only works if you are using rspec-expectations.
If you are using RSpec’s newer expect-based syntax you may want to use ‘is_expected.to` instead of `should`.
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.
80 81 82 83 |
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/memoized_helpers.rb', line 80 def should(matcher=nil, =nil) enforce_value_expectation(matcher, 'should') RSpec::Expectations::PositiveExpectationHandler.handle_matcher(subject, matcher, ) end |
#should_not(matcher = nil, message = nil) ⇒ Object
This only works if you are using rspec-expectations.
If you are using RSpec’s newer expect-based syntax you may want to use ‘is_expected.to_not` instead of `should_not`.
Just like ‘should`, `should_not` delegates to the subject (implicit or explicit) of the example group.
100 101 102 103 |
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/memoized_helpers.rb', line 100 def should_not(matcher=nil, =nil) enforce_value_expectation(matcher, 'should_not') 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:
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.
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/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.12.0/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 |