Как я могу проверить выходы и прерывания в 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
класс).