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