Class: RuboCop::Cop::RSpec::MessageSpies
- Includes:
- ConfigurableEnforcedStyle
- Defined in:
- lib/rubocop/cop/rspec/message_spies.rb
Overview
Checks that message expectations are set using spies.
This cop can be configured in your configuration using the ‘EnforcedStyle` option and supports `–auto-gen-config`.
Constant Summary collapse
- MSG_RECEIVE =
'Prefer `receive` for setting message expectations.'
- MSG_HAVE_RECEIVED =
'Prefer `have_received` for setting message ' \ 'expectations. Setup `%<source>s` as a spy using ' \ '`allow` or `instance_spy`.'
- SUPPORTED_STYLES =
%w[have_received receive].freeze
- RESTRICT_ON_SEND =
Runners.all
Instance Method Summary collapse
Methods inherited from Base
inherited, #on_new_investigation
Methods included from RSpec::Language::NodePattern
#block_pattern, #numblock_pattern, #send_pattern
Methods included from RSpec::Language
#example?, #example_group?, #example_group_with_body?, #hook?, #include?, #let?, #rspec?, #shared_group?, #spec_group?, #subject?
Instance Method Details
#message_expectation(node) ⇒ Object
47 48 49 |
# File 'lib/rubocop/cop/rspec/message_spies.rb', line 47 def_node_matcher :message_expectation, %( (send (send nil? :expect $_) #Runners.all ...) ) |
#on_send(node) ⇒ Object
56 57 58 59 60 61 62 63 64 65 |
# File 'lib/rubocop/cop/rspec/message_spies.rb', line 56 def on_send(node) (node) do |receiver, | return correct_style_detected if preferred_style?() add_offense( .loc.selector, message: (receiver) ) { opposite_style_detected } end end |
#receive_message(node) ⇒ Object
52 53 54 |
# File 'lib/rubocop/cop/rspec/message_spies.rb', line 52 def_node_search :receive_message, %( $(send nil? {:receive :have_received} ...) ) |