class RuboCop::Cop::RSpec::ExpectInHook

Do not use `expect` in hooks such as `before`.

@example

# bad
before do
  expect(something).to eq 'foo'
end

# bad
after do
  expect_any_instance_of(Something).to receive(:foo)
end

# good
it do
  expect(something).to eq 'foo'
end

Constants

HOOKS
MSG

Public Instance Methods

on_block(node) click to toggle source
# File lib/rubocop/cop/rspec/expect_in_hook.rb, line 37
def on_block(node)
  hook(node) do |hook_name, body|
    expect(body) do |expect|
      method = send_node(expect)
      add_offense(method, location: :selector,
                          message: message(method, hook_name))
    end
  end
end

Private Instance Methods

message(expect, hook) click to toggle source
# File lib/rubocop/cop/rspec/expect_in_hook.rb, line 49
def message(expect, hook)
  format(MSG, expect: expect.method_name, hook: hook)
end
send_node(node) click to toggle source
# File lib/rubocop/cop/rspec/expect_in_hook.rb, line 53
def send_node(node)
  return node if node.send_type?
  node.children.first
end