Class: RuboCop::Cop::Minitest::RefuteSame
- Inherits:
-
Base
- Object
- Base
- RuboCop::Cop::Minitest::RefuteSame
- Extended by:
- AutoCorrector
- Defined in:
- lib/rubocop/cop/minitest/refute_same.rb
Overview
Enforces the use of refute_same(expected, object)
over refute(expected.equal?(actual)).
NOTE: Use refute_same only when there is a need to compare by identity.
Otherwise, use refute_equal.
Constant Summary collapse
- MSG =
'Prefer using `refute_same(%<new_arguments>s)`.'- RESTRICT_ON_SEND =
%i[refute refute_equal].freeze
Instance Method Summary collapse
-
#on_send(node) ⇒ Object
rubocop:disable Metrics/AbcSize.
Instance Method Details
#on_send(node) ⇒ Object
rubocop:disable Metrics/AbcSize
40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/rubocop/cop/minitest/refute_same.rb', line 40 def on_send(node) if (equal_node, expected_node, actual_node, = refute_with_equal?(node)) add_offense(node, message: (expected_node, actual_node, .first)) do |corrector| corrector.replace(node.loc.selector, 'refute_same') corrector.replace(equal_node, "#{expected_node.source}, #{actual_node.source}") end elsif (expected_node, actual_node, = refute_equal_with_object_id?(node)) add_offense(node, message: (expected_node, actual_node, .first)) do |corrector| corrector.replace(node.loc.selector, 'refute_same') remove_method_call(expected_node.parent, corrector) remove_method_call(actual_node.parent, corrector) end end end |