Class: RuboCop::Cop::RSpec::NamedSubject
- Inherits:
-
RuboCop::Cop
- Object
- RuboCop::Cop
- RuboCop::Cop::RSpec::NamedSubject
- Includes:
- RSpec::SpecOnly
- Defined in:
- lib/rubocop/cop/rspec/named_subject.rb
Overview
Checks for explicitly referenced test subjects.
RSpec lets you declare an “implicit subject” using ‘subject { … }` which allows for tests like `it { should be_valid }`. If you need to reference your test subject you should explicitly name it using `subject(:your_subject_name) { … }`. Your test subjects should be the most important object in your tests so they deserve a descriptive name.
Constant Summary collapse
- MSG =
'Name your test subject if '\ 'you need to reference it explicitly.'.freeze
Constants included from RSpec::SpecOnly
RSpec::SpecOnly::DEFAULT_CONFIGURATION
Instance Method Summary collapse
Methods included from RSpec::SpecOnly
Instance Method Details
#on_block(node) ⇒ Object
54 55 56 57 58 59 60 |
# File 'lib/rubocop/cop/rspec/named_subject.rb', line 54 def on_block(node) return unless rspec_block?(node) subject_usage(node) do |subject_node| add_offense(subject_node, :selector) end end |