मैं कमांड लाइन तर्कों के लिए व्यवहार करने की कोशिश कर रहा हूं, मेरी स्क्रिप्ट यह सुनिश्चित करने के लिए प्राप्त करती है कि सभी सत्यापन पास हो जाएं। मेरे कुछ कमांड लाइन तर्कों के परिणामस्वरूप abort
या exit
का आह्वान किया जाएगा क्योंकि आपूर्ति किए गए पैरामीटर गुम या गलत हैं।मैं आरएसपीईसी में निकास और बंदरगाहों को कैसे मान्य कर सकता हूं?
मैं कुछ इस तरह जो काम नहीं कर रहा कोशिश कर रहा हूँ:
# 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 हो सकते हैं –