class RuboCop::Cop::RSpec::Rails::MinitestAssertions
expect(a).not_to eq(b)
expect(a).to(eq(b), “must be equal”)
expect(a).to eq(b)
# good
refute_equal(a, b)
assert_equal a, b, “must be equal”
assert_equal(a, b)
# bad
@example
Check if using Minitest matchers.
def message(prefer)
def message(prefer) format(MSG, prefer: prefer) end
def on_send(node)
def on_send(node) minitest_assertion(node) do |expected, actual, failure_message| prefer = replacement(node, expected, actual, failure_message.first) add_offense(node, message: message(prefer)) do |corrector| corrector.replace(node, prefer) end end end
def replacement(node, expected, actual, failure_message)
def replacement(node, expected, actual, failure_message) runner = node.method?(:assert_equal) ? 'to' : 'not_to' if failure_message.nil? "expect(#{expected.source}).#{runner} eq(#{actual.source})" else "expect(#{expected.source}).#{runner}(eq(#{actual.source}), " \ "#{failure_message.source})" end end