class RuboCop::Cop::RSpec::ExampleLength
Checks for long examples.
A long example is usually more difficult to understand. Consider extracting out some behaviour, e.g. with a `let` block, or a helper method.
@example
# bad it do service = described_class.new more_setup more_setup result = service.call expect(result).to be(true) end # good it do service = described_class.new result = service.call expect(result).to be(true) end
Constants
- MSG
Public Instance Methods
on_block(node)
click to toggle source
# File lib/rubocop/cop/rspec/example_length.rb, line 32 def on_block(node) return unless example?(node) length = code_length(node) return unless length > max_length add_offense(node, location: :expression, message: message(length)) end
Private Instance Methods
code_length(node)
click to toggle source
# File lib/rubocop/cop/rspec/example_length.rb, line 44 def code_length(node) node.source.lines[1..-2].count { |line| !irrelevant_line(line) } end
message(length)
click to toggle source
# File lib/rubocop/cop/rspec/example_length.rb, line 48 def message(length) format(MSG, length, max_length) end