class RuboCop::Cop::RSpec::ExampleLength
end
expect(result).to be(true)
result = service.call
service = described_class.new
it do
# good
end
expect(result).to be(true)
result = service.call
more_setup
more_setup
service = described_class.new
it do
# bad
@example
method.
extracting out some behaviour, e.g. with a ‘let` block, or a helper
A long example is usually more difficult to understand. Consider
Checks for long examples.
def code_length(node)
def code_length(node) node.source.lines[1..-2].count { |line| !irrelevant_line(line) } end
def message(length)
def message(length) format(MSG, total: length, max: max_length) end
def on_block(node)
def on_block(node) return unless example?(node) length = code_length(node) return unless length > max_length add_offense(node, message: message(length)) end