Продолжаем рубрику «хорошо-плохо» и опять про тесты.
Месседж очень простой: Перестаньте писать циклы в тестах.
Плохо:
[2, 4, 6].each { |item|
expect(item).to_be_odd()
}
Хорошо:
expect(2).to_be_odd()
expect(4).to_be_odd()
expect(6).to_be_odd()
Иногда ещё, если позволяет фреймворк, можно это красиво завернуть в макрос (или что там у вас есть в фреймворке):
expect_to_be_odd(4)
Но нужно помнить, что такие вот макросы в тестах — это тоже код, который тоже бы неплохо протестировать. Правило всё такое же — любой мало-мальски сложный код нужно тестировать. Поэтому код должен быть максимально простым.