class RuboCop::Cop::RSpec::VerifiedDoubles

Prefer using verifying doubles over normal doubles.

@see rspec.info/features/3-12/rspec-mocks/verifying-doubles

@example

# bad
let(:foo) do
  double(method_name: 'returned value')
end

# bad
let(:foo) do
  double("ClassName", method_name: 'returned value')
end

# good
let(:foo) do
  instance_double("ClassName", method_name: 'returned value')
end

Constants

MSG
RESTRICT_ON_SEND

Public Instance Methods

on_send(node) click to toggle source
# File lib/rubocop/cop/rspec/verified_doubles.rb, line 35
def on_send(node)
  unverified_double(node) do |name, *_args|
    return if name.nil? && cop_config['IgnoreNameless']
    return if symbol?(name) && cop_config['IgnoreSymbolicNames']

    add_offense(node)
  end
end

Private Instance Methods

symbol?(name) click to toggle source
# File lib/rubocop/cop/rspec/verified_doubles.rb, line 46
def symbol?(name)
  name&.sym_type?
end