class RuboCop::Cop::Minitest::MultipleAssertions


end
end
assert_empty(array)
def test_another_asserts_once
end
assert_equal(42, do_something)
def test_asserts_once
class FooTest < Minitest::Test
# good
end
end
assert_empty(array)
assert_equal(42, do_something)
def test_asserts_twice
class FooTest < Minitest::Test
# bad
@example Max: 1
The maximum allowed assertion calls is configurable.
This cop checks if test cases contain too many assertion calls.

def assertions_count(node)

def assertions_count(node)
  base = assertion_method?(node) ? 1 : 0
  base + node.each_child_node.sum { |c| assertions_count(c) }
end

def max_assertions

def max_assertions
  Integer(cop_config.fetch('Max', 3))
end

def on_class(class_node)

def on_class(class_node)
  return unless test_class?(class_node)
  test_cases(class_node).each do |node|
    assertions_count = assertions_count(node)
    next unless assertions_count > max_assertions
    self.max = assertions_count
    message = format(MSG, total: assertions_count, max: max_assertions)
    add_offense(node, message: message)
  end
end