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 relishapp.com/rspec/rspec-mocks/docs/verifying-doubles<br><br>Only investigates references that are one of the supported styles.
Checks for consistent verified double reference style.
def correct_style(violation)
def correct_style(violation) if style == :string "'#{violation}'" else violation 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.loc.expression add_offense(expression, message: message) do |corrector| violation = class_reference.children.last.to_s corrector.replace(expression, correct_style(violation)) 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