Wie kann ich Exits und Abbrüche in RSpec überprüfen?

Ich versuche, Verhaltensweisen für Befehlszeilenargumente anzugeben, die mein Skript empfängt, um sicherzustellen, dass alle Überprüfungen bestanden werden. Einige meiner Befehlszeilenargumente führen zuabort oderexit wird aufgerufen, weil die angegebenen Parameter fehlen oder falsch sind.

Ich versuche so etwas, was nicht funktioniert:

# 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

Dasexit Methode wird sauber ausgelöst und verhindert, dass RSpec den Test validiert (ich erhalte "SystemExit: exit").

Ich habe es auch versuchtmock(Kernel) Aber auch das funktioniert nicht so, wie ich es gerne hätte (ich sehe keinen erkennbaren Unterschied, aber das liegt wahrscheinlich daran, dass ich nicht genau weiß, wie ich den Kernel verspotten soll und ob der verspottete Kernel in meinem verwendet wirdSomething Klasse).

Antworten auf die Frage(7)

Ihre Antwort auf die Frage