Class: RuboCop::Cop::Minitest::AssertionInLifecycleHook

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

Overview

Checks for usage of assertions in lifecycle hooks.

Examples:

# bad
class FooTest < Minitest::Test
  def setup
    assert_equal(foo, bar)
  end
end

# good
class FooTest < Minitest::Test
  def test_something
    assert_equal(foo, bar)
  end
end

Constant Summary collapse

MSG =
'Do not use `%<assertion>s` in `%<hook>s` hook.'

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(class_node) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/rubocop/cop/minitest/assertion_in_lifecycle_hook.rb', line 28

def on_class(class_node)
  return unless test_class?(class_node)

  lifecycle_hooks(class_node).each do |hook_node|
    hook_node.each_descendant(:send) do |node|
      if assertion_method?(node)
        message = format(MSG, assertion: node.method_name, hook: hook_node.method_name)
        add_offense(node, message: message)
      end
    end
  end
end