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::BLOCK_MATCHERS, RuboCop::Cop::MinitestExplorationHelpers::LIFECYCLE_HOOK_METHODS, RuboCop::Cop::MinitestExplorationHelpers::LIFECYCLE_HOOK_METHODS_IN_ORDER, RuboCop::Cop::MinitestExplorationHelpers::MATCHER_METHODS, RuboCop::Cop::MinitestExplorationHelpers::VALUE_MATCHERS

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