모든 유효성 검사가 통과하도록하기 위해 스크립트가받는 명령 줄 인수에 대한 동작을 지정하려고합니다. 내 명령 줄 인수 중 일부는 제공된 매개 변수가 없거나 올바르지 않기 때문에 abort
또는 exit
이 호출됩니다.RSpec에서 종료 및 중단을 검증하려면 어떻게해야합니까?
I가 작동하지 않는이 같은 노력하고 있어요 :
# 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
exit
방법은 정상적으로 발사 시험의 유효성을 검사에서 RSpec에 방지됩니다 ("출구 SystemExit없이"나는 얻을).
나는 또한 mock(Kernel)
으로 시도했지만 그 역시 내가 원하는대로 작동하지 않습니다. (나는 눈에 띄는 차이는 보이지 않지만, 정확히 어떻게 커널을 조롱하고 잘 조롱했는지 확신 할 수 없기 때문일 수 있습니다. 커널은 내 Something
클래스에서 사용됩니다.
경고 : RSpec에이 아마도'exit's이 기대가 실패 할 때, 그래서 우리는 우리 자신의 등 대신에 RSpec에의'exit's를 구출 끝낼 수 있기 때문에 우리는 유사한 솔루션으로 문제가 있었다 –