class RuboCop::Cop::Minitest::RefuteFalse
This cop enforces the use of `refute(object)` over `assert_equal(false, object)`.
@example
# bad assert_equal(false, actual) assert_equal(false, actual, 'message') assert(!test) assert(!test, 'message') # good refute(actual) refute(actual, 'message')
Constants
- MSG_FOR_ASSERT
- MSG_FOR_ASSERT_EQUAL
- RESTRICT_ON_SEND
Public Instance Methods
on_send(node)
click to toggle source
# File lib/rubocop/cop/minitest/refute_false.rb, line 37 def on_send(node) actual, rest_receiver_arg = assert_equal_with_false(node) || assert_with_bang_argument(node) return unless actual message_argument = rest_receiver_arg.first arguments = [actual.source, message_argument&.source].compact.join(', ') message = node.method?(:assert_equal) ? MSG_FOR_ASSERT_EQUAL : MSG_FOR_ASSERT add_offense(node, message: format(message, arguments: arguments)) do |corrector| autocorrect(corrector, node, actual) end end
Private Instance Methods
autocorrect(corrector, node, actual)
click to toggle source
# File lib/rubocop/cop/minitest/refute_false.rb, line 54 def autocorrect(corrector, node, actual) corrector.replace(node.loc.selector, 'refute') if node.method?(:assert_equal) corrector.replace(first_and_second_arguments_range(node), actual.source) else corrector.replace(first_argument_range(node), actual.source) end end