Class: RuboCop::Cop::Minitest::NonPublicTestMethod

Inherits:
Base
  • Object
show all
Includes:
DefNode, RuboCop::Cop::MinitestExplorationHelpers
Defined in:
lib/rubocop/cop/minitest/non_public_test_method.rb

Overview

Detects non ‘public` (marked as `private` or `protected`) test methods. Minitest runs only test methods which are `public`.

Examples:

# bad
class FooTest
  private # or protected
  def test_does_something
    assert_equal 42, do_something
  end
end

# good
class FooTest
  def test_does_something
    assert_equal 42, do_something
  end
end

# good (not a test case name)
class FooTest
  private # or protected
  def does_something
    assert_equal 42, do_something
  end
end

# good (no assertions)
class FooTest
  private # or protected
  def test_does_something
    do_something
  end
end

Constant Summary collapse

MSG =
'Non `public` test method detected. Make it `public` for it to run.'

Constants included from RuboCop::Cop::MinitestExplorationHelpers

RuboCop::Cop::MinitestExplorationHelpers::ASSERTION_PREFIXES, RuboCop::Cop::MinitestExplorationHelpers::LIFECYCLE_HOOK_METHODS, RuboCop::Cop::MinitestExplorationHelpers::LIFECYCLE_HOOK_METHODS_IN_ORDER

Instance Method Summary collapse

Instance Method Details

#on_class(node) ⇒ Object



47
48
49
50
51
# File 'lib/rubocop/cop/minitest/non_public_test_method.rb', line 47

def on_class(node)
  test_cases(node, visibility_check: false).each do |test_case|
    add_offense(test_case) if non_public?(test_case) && assertions(test_case).any?
  end
end