class RuboCop::Cop::RSpec::VerifiedDoubleReference
end
instance_double(@klass, method_name: ‘returned_value’)
let(:foo) do
# good
@example Reference is not in the supported style list. No enforcement
end
instance_double(‘ClassName’, method_name: ‘returned_value’)
let(:foo) do
# good
end
instance_double(ClassName, method_name: ‘returned_value’)
let(:foo) do
# bad
@example ‘EnforcedStyle: string`
end
instance_double(ClassName, method_name: ’returned_value’)
let(:foo) do
# good
end
instance_double(‘ClassName’, method_name: ‘returned_value’)
let(:foo) do
# bad
@example ‘EnforcedStyle: constant` (default)
`EnforcedStyle` option and supports `–auto-gen-config`.
This cop can be configured in your configuration using the
@see rspec.info/features/3-12/rspec-mocks/verifying-doubles<br><br>Only investigates references that are one of the supported styles.
Checks for consistent verified double reference style.
def correct_style(offense)
def correct_style(offense) if style == :string "'#{offense}'" else offense.gsub(/^['"]|['"]$/, '') end end
def on_send(node)
def on_send(node) verified_double(node) do |class_reference| break correct_style_detected unless opposing_style?(class_reference) message = format(MSG, style: style) expression = class_reference.source_range add_offense(expression, message: message) do |corrector| offense = class_reference.source corrector.replace(expression, correct_style(offense)) opposite_style_detected end end end
def opposing_style?(class_reference)
def opposing_style?(class_reference) class_reference_style = REFERENCE_TYPE_STYLES[class_reference.type] # Only enforce supported styles return false unless class_reference_style class_reference_style != style end