Как я могу проверить выходы и прерывания в RSpec?

Я пытаюсь определить поведение для аргументов командной строки, которые получает мой скрипт, чтобы гарантировать, что вся проверка прошла. Некоторые из моих аргументов командной строки приведут кabort или жеexit вызывается, потому что предоставленные параметры отсутствуют или неверны.

Я пытаюсь что-то вроде этого, которое не работает:

# something_spec.rb
require 'something'
describe Something do
    before do
        Kernel.stub!(:exit)
    end

    it "should exit cleanly when -h is used" do
        s = Something.new
        Kernel.should_receive(:exit)
        s.process_arguments(["-h"])
    end
end

exit метод запускает чисто, не давая RSpec проверить тест (я получаю «SystemExit: выход»).

Я также пыталсяmock(Kernel) но это тоже не работает так, как мне бы хотелось (я не вижу заметной разницы, но это, вероятно, потому что я не уверен, как именно высмеивать ядро и убедиться, что имитированное ядро используется в моемSomething класс).

Ответы на вопрос(7)

Ваш ответ на вопрос