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 38 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 50 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 54 def send_node(node) return node if node.send_type? node.children.first end