class RuboCop::Cop::RSpec::PredicateMatcher
Prefer using predicate matcher over using predicate method directly.
RSpec
defines magic matchers for predicate methods. This cop recommends to use the predicate matcher instead of using predicate method directly.
@example Strict: true, EnforcedStyle: inflected (default)
# bad expect(foo.something?).to be_truthy # good expect(foo).to be_something # also good - It checks "true" strictly. expect(foo.something?).to be(true)
@example Strict: false, EnforcedStyle: inflected
# bad expect(foo.something?).to be_truthy expect(foo.something?).to be(true) # good expect(foo).to be_something
@example Strict: true, EnforcedStyle: explicit
# bad expect(foo).to be_something # good - the above code is rewritten to it by this cop expect(foo.something?).to be(true) # bad - no autocorrect expect(foo) .to be_something(<<~TEXT) bar TEXT # good expect(foo.something?(<<~TEXT)).to be(true) bar TEXT
@example Strict: false, EnforcedStyle: explicit
# bad expect(foo).to be_something # good - the above code is rewritten to it by this cop expect(foo.something?).to be_truthy
Constants
- RESTRICT_ON_SEND
Public Instance Methods
on_block(node)
click to toggle source
# File lib/rubocop/cop/rspec/predicate_matcher.rb, line 335 def on_block(node) # rubocop:disable InternalAffairs/NumblockHandler check_explicit(node) if style == :explicit end
on_send(node)
click to toggle source
# File lib/rubocop/cop/rspec/predicate_matcher.rb, line 326 def on_send(node) case style when :inflected check_inflected(node) when :explicit check_explicit(node) end end