class RuboCop::Cop::RSpec::SubjectDeclaration


subject(:test_subject) { foo }
# good
let(:subject, &block)
block = -> {}
# bad
subject!(:subject) { foo }
subject(:subject) { foo }
let!(:subject) { foo }
let(:subject) { foo }
# bad
@example
Ensure that subject is defined using subject helper.

def message_for(offense)

def message_for(offense)
  Helpers.all(offense) ? MSG_LET : MSG_REDUNDANT
end

def on_send(node)

def on_send(node)
  offense = offensive_subject_declaration?(node)
  return unless offense
  add_offense(node, message: message_for(offense))
end