Como posso validar saídas e anulações no RSpec?

Eu estou tentando comportamentos de especificação para argumentos de linha de comando meu script recebe para garantir que passa toda a validação. Alguns dos meus argumentos de linha de comando resultarão emabort ouexit sendo chamado porque os parâmetros fornecidos estão ausentes ou incorretos.

Eu estou tentando algo assim que não está funcionando:

# 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

oexit O método está disparando de forma limpa, impedindo o RSpec de validar o teste (recebo "SystemExit: exit").

Eu também tenteimock(Kernel) mas isso também não está funcionando como eu gostaria (eu não vejo nenhuma diferença discernível, mas isso é provável porque eu não tenho certeza de como exatamente zombar do Kernel e ter certeza de que o Kernel debochado é usado na minhaSomething classe).

questionAnswers(7)

yourAnswerToTheQuestion