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).