¿Cómo puedo validar salidas y abortos en RSpec?

Estoy tratando de especificar comportamientos para los argumentos de la línea de comandos que recibe mi script para garantizar que todas las validaciones pasan. Algunos de mis argumentos de la línea de comando resultarán enabort oexit se invoca porque los parámetros proporcionados faltan o son incorrectos.

Estoy intentando algo como esto que no funciona:

# 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

losexit El método se activa de forma limpia y evita que RSpec valide la prueba (Obtengo "SystemExit: exit").

También he tratado demock(Kernel) pero eso tampoco funciona como me gustaría (no veo ninguna diferencia perceptible, pero eso es probable porque no estoy seguro de cómo burlarme del Kernel y de asegurarme de que se utiliza el Kernel burlado en miSomething clase).

Respuestas a la pregunta(7)

Su respuesta a la pregunta