У меня есть метод, который запускается из CLI, который имеет некоторые логические пути, которые явно выходят или прерываются. Я обнаружил, что при написании спецификаций для этого метода RSpec отмечает это как сбоя, потому что выходы являются исключениями. Вот пример с голой костью:
def cli_method
if condition
puts "Everything okay!"
else
puts "GTFO!"
exit
end
end
Я могу обернуть спецификацию в лямбда с помощью should raise_error(SystemExit)
, но это игнорирует любые утверждения, которые происходят внутри блока. Чтобы быть ясным: я не тестирую сам выход, а логику, которая происходит до него. Как я могу описать этот тип метода?