Jak mogę zweryfikować wyjścia i przerwać RSpec?

Próbuję wyszczególnić zachowania dla argumentów wiersza poleceń, które otrzymuje mój skrypt, aby upewnić się, że wszystkie sprawdzenia poprawności przebiegają pomyślnie. Spowoduje to niektóre z moich argumentów wiersza poleceńabort lubexit wywoływane, ponieważ brakuje parametrów lub są niepoprawne.

Próbuję czegoś takiego, co nie działa:

# 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

Theexit metoda odpala czysto, uniemożliwiając RSpec sprawdzenie poprawności testu (otrzymuję „SystemExit: exit”).

Próbowałem teżmock(Kernel) ale to też nie działa tak, jak chciałbym (nie widzę żadnej dostrzegalnej różnicy, ale to prawdopodobnie dlatego, że nie jestem pewien, jak dokładnie kpić jądro i upewnić się, że w moimSomething klasa).

questionAnswers(7)

yourAnswerToTheQuestion