class RuboCop::Cop::RSpec::SubjectDeclaration

Ensure that subject is defined using subject helper.

@example

# bad
let(:subject) { foo }
let!(:subject) { foo }
subject(:subject) { foo }
subject!(:subject) { foo }

# bad
block = -> {}
let(:subject, &block)

# good
subject(:test_subject) { foo }

Constants

MSG_LET
MSG_REDUNDANT

Public Instance Methods

on_send(node) click to toggle source
# File lib/rubocop/cop/rspec/subject_declaration.rb, line 31
def on_send(node)
  offense = offensive_subject_declaration?(node)
  return unless offense

  add_offense(node, message: message_for(offense))
end

Private Instance Methods

message_for(offense) click to toggle source
# File lib/rubocop/cop/rspec/subject_declaration.rb, line 40
def message_for(offense)
  Helpers.all(offense) ? MSG_LET : MSG_REDUNDANT
end