2
У меня есть метод, который иногда вызывает exit(numeric_value)
.Как проверить значение выхода в rspec?
Возможно ли, чтобы rspec подтвердил, что при вызове метода процесс выходит с правильным значением?
Я видел эти другие сообщения, но они не отвечают на этот конкретный вопрос.
Вы должны были бы гасит 'exit' , или ваша программа на самом деле * выход *, когда эта линия встречается. Вы действительно не должны просто спасаться таким образом. Вместо этого создайте исключение. – meagar
@meagar Сценарий ruby, который я хочу протестировать с помощью rspec, используется в контексте внешней среды (Sensu), которая проверяет значение выхода и действует соответствующим образом. Поэтому в этом случае требуется вызов 'exit'. –
Ах, я не понимал, что 'exit' в Ruby на самом деле * делает * поднимает Exception. Ваш вопрос является дубликатом первой ссылки, которую вы опубликовали, и ответ будет хорошо работать для вас. Просто перехватите исключение 'SystemExit'. 'lambda {whatever} .should raise_error SystemExit', или просто поймайте исключение SystemExit' самостоятельно, чтобы проверить' .status' пойманного исключения. ' – meagar