Впихнуть все в expect
Иногда в тестах можно увидеть такое:
expect(described_class.new(at: Time.new(2019, 7, 7, 9, 15)).to_human).to eq "9:15"
Строка получается слишком длинной, Рубокоп ругается, разработчик «исправляет»:
expect(
described_class.new(at: Time.new(2019, 7, 7, 9, 15)).to_human
).to eq "9:00"
Это, конечно, ерунда. Симптомы вылечили, а болезнь осталась: в expect() происходит слишком много. Лучше так:
nine_in_the_morning = Time.new(2019, 7, 7, 9, 15)
alarm = described_class.new(at: nine_in_the_morning)
expect(alarm.to_human).to eq "9:15"
А если убрать несущественные для теста детали — год, месяц и день — станет еще лучше:
nine_in_the_morning = Time.now.change(hour: 9, min: 15)
alarm = described_class.new(at: nine_in_the_morning)
expect(alarm.to_human).to eq "9:15"
P. S. Ещё больше постов о программировании, тестах и культуре разработки у меня в Телеграме.