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 38
def on_block(node)
  return unless example_group?(node)

  unused_let_bang(node) do |let|
    add_offense(let, location: :expression)
  end
end

Private Instance Methods

unused_let_bang(node) { |method_send| ... } click to toggle source
# File lib/rubocop/cop/rspec/let_setup.rb, line 48
def unused_let_bang(node)
  let_bang(node) do |method_send, method_name|
    yield(method_send) unless method_called?(node, method_name)
  end
end