class RuboCop::Cop::RSpec::LetSetup
Checks unreferenced `let!` calls being used for test setup.
@example
# Bad let!(:my_widget) { create(:widget) } it 'counts widgets' do expect(Widget.count).to eq(1) end # Good it 'counts widgets' do create(:widget) expect(Widget.count).to eq(1) end # Good before { create(:widget) } it 'counts widgets' do expect(Widget.count).to eq(1) end
Constants
- MSG
Public Instance Methods
on_block(node)
click to toggle source
# File lib/rubocop/cop/rspec/let_setup.rb, line 52 def on_block(node) return unless example_or_shared_group_or_including?(node) unused_let_bang(node) do |let| add_offense(let) end end
Private Instance Methods
child_let_bang(node, &block)
click to toggle source
# File lib/rubocop/cop/rspec/let_setup.rb, line 68 def child_let_bang(node, &block) RuboCop::RSpec::ExampleGroup.new(node).lets.each do |let| let_bang(let, &block) end end
unused_let_bang(node) { |method_send| ... }
click to toggle source
# File lib/rubocop/cop/rspec/let_setup.rb, line 62 def unused_let_bang(node) child_let_bang(node) do |method_send, method_name| yield(method_send) unless method_called?(node, method_name.to_sym) end end