में 'puts' की अनुपस्थिति (अनुपस्थिति) की जांच करें, मैं रूबी प्रोजेक्ट में अपने परीक्षण के लिए rspec का उपयोग कर रहा हूं, और मैं यह अनुमान लगाता हूं कि -q विकल्प का उपयोग होने पर मेरे प्रोग्राम को कुछ भी आउटपुट नहीं करना चाहिए। मैंने कोशिश की:आरएसपीसी
Kernel.should_not_receive :puts
कंसोल पर आउटपुट होने पर असफल परीक्षण नहीं हुआ।
मैं टेक्स्ट आउटपुट की अनुपस्थितियों को कैसे सत्यापित करूं?
मेरे लिए से काम कर RSpec, उम्मीद: काम करता है लिखते हैं, लेकिन उम्मीद: कहते हैं नहीं करता है। क्या आपका कोड $ stdout.puts को कॉल करता है या बस रखता है? –
बस रखता है, मैं $ stdout को कभी नहीं लिखूंगा क्योंकि यह बहुत गतिशील नहीं है। इसके बजाय मैं $ stdout को एक स्ट्रिंगियो की तरह फिर से सौंपूंगा, इसलिए "रखता है" जो मैं चाहता हूं उसे जाता है। ध्यान रखें कि आप उम्मीद नहीं कर रहे हैं: लिखो कि आप लिखने की उम्मीद नहीं कर रहे हैं। रखता है के साथ वही बात। मैं यह देखने के लिए परीक्षण करता हूं कि सकारात्मक परीक्षा के साथ-साथ नकारात्मक परीक्षण करके आप क्या प्राप्त कर रहे हैं। उदाहरण के लिए यदि मैं कहता हूं "मुझे दिन देने वाले धर्मनिरपेक्ष उपहार के लिए टोपी नहीं मिलनी चाहिए।" इसका मतलब यह नहीं है कि मुझे स्कार्फ नहीं मिला। –