class RuboCop::Cop::RSpec::InstanceSpy
Checks for ‘instance_double` used with `have_received`.
@example
# bad it do foo = instance_double(Foo).as_null_object expect(foo).to have_received(:bar) end # good it do foo = instance_spy(Foo) expect(foo).to have_received(:bar) end
Constants
- MSG
Public Instance Methods
Source
# File lib/rubocop/cop/rspec/instance_spy.rb, line 45 def on_block(node) # rubocop:disable InternalAffairs/NumblockHandler return unless example?(node) null_double(node) do |var, receiver| have_received_usage(node) do |expected| next if expected != var add_offense(receiver) do |corrector| autocorrect(corrector, receiver) end end end end
Private Instance Methods
Source
# File lib/rubocop/cop/rspec/instance_spy.rb, line 61 def autocorrect(corrector, node) replacement = 'instance_spy' corrector.replace(node.loc.selector, replacement) double_source_map = node.parent.loc as_null_object_range = double_source_map .dot .join(double_source_map.selector) corrector.remove(as_null_object_range) end