class RuboCop::Cop::Minitest::TestMethodName
This cop enforces that test method names start with `test_` prefix. It aims to prevent tests that aren't executed by forgetting to start test method name with `test_`.
@example
# bad class FooTest < Minitest::Test def does_something assert_equal 42, do_something end end # good class FooTest < Minitest::Test def test_does_something assert_equal 42, do_something end end # good class FooTest < Minitest::Test def helper_method(argument) end end
Constants
- MSG
Public Instance Methods
on_class(class_node)
click to toggle source
# File lib/rubocop/cop/minitest/test_method_name.rb, line 37 def on_class(class_node) return unless test_class?(class_node) class_elements(class_node).each do |node| next unless offense?(node) test_method_name = node.loc.name add_offense(test_method_name) do |corrector| corrector.replace(test_method_name, "test_#{node.method_name}") end end end
Private Instance Methods
class_elements(class_node)
click to toggle source
# File lib/rubocop/cop/minitest/test_method_name.rb, line 53 def class_elements(class_node) class_def = class_node.body return [] unless class_def if class_def.def_type? [class_def] else class_def.each_child_node(:def).to_a end end
offense?(node)
click to toggle source
# File lib/rubocop/cop/minitest/test_method_name.rb, line 64 def offense?(node) return false if assertions(node).none? public?(node) && node.arguments.empty? && !test_method_name?(node) && !lifecycle_hook_method?(node) end
public?(node)
click to toggle source
# File lib/rubocop/cop/minitest/test_method_name.rb, line 70 def public?(node) !non_public?(node) end
test_method_name?(node)
click to toggle source
# File lib/rubocop/cop/minitest/test_method_name.rb, line 74 def test_method_name?(node) node.method_name.to_s.start_with?('test_') end