सीखने के सभी रास्ते समझें देखें करें बनाएँ एक ऐसी जाँच लिखें जो फेल हो सके यह पाठ किस बारे में है हमेशा पास होने वाली जाँच कुछ साबित नहीं करती। ऐसी लिखें जो कोड गलत होने पर लाल हो जाए, और यह साबित भी करें।
आपने दुकान के बिलिंग प्रोग्राम की जीएसटी वाली पंक्ति के लिए एक जाँच लिखी, और वह पहली ही बार पास हो गई। अब क्या?
A उसी पंक्ति के लिए दो और जाँचें जोड़ दें, ताकि कोई एक तो गलती पकड़ ही ले। B जाँच में लिखा अंक तब तक बदलें जब तक वह फेल न हो, इससे दिख जाता है कि वह लाल हो सकती है। C जो जाँच कभी फेल न हो वह कुछ साबित नहीं करती। कोड तोड़ें और उसे लाल होते देखें।
याद जाँचें यह काम क्यों ज़रूरी है जो जाँच हमेशा पास होती है वह सजावट है। लिखने में मेहनत उतनी ही लगती है और पकड़ती वह कुछ नहीं। जाँच के काम करने का एक ही सबूत है: जान-बूझकर तोड़े गए कोड पर उसे फेल होते देखना।
ऐसी एक जाँच लिखें जो कोड गलत होने पर लाल हो जाए, और यह साबित भी करें।
जो जाँच हमेशा पास होती है वह सजावट है। लिखने में मेहनत उतनी ही लगती है और पकड़ती वह कुछ नहीं। जाँच के काम करने का एक ही सबूत है: जान-बूझकर तोड़े गए कोड पर उसे फेल होते देखना।
जो जाँच कभी फेल न हो वह कुछ साबित नहीं करती। कोड तोड़ें और उसे लाल होते देखें। एक जाँच एक ही बरताव देखे, ताकि उसका फेल होना एक ही चीज़ बताए। जाँच का नाम बरताव पर रखें, ताकि अनजान व्यक्ति फेल पढ़कर ही समझ जाए। काम उस फंक्शन के लिए एक जाँच लिखें जो बिल की रकम में अठारह प्रतिशत जीएसटी जोड़ता है।
कमज़ोर तरीका तीन अलग-अलग बिल रकमों पर फंक्शन चलाना और हर बार सिर्फ़ यह देखना कि कोई संख्या लौटी। हर बार पास हो जाता है, और हमेशा शून्य लौटाने वाला टूटा फंक्शन भी पास हो जाता।
बेहतर तरीका देखता है कि 100 पर 118 आता है, फिर दर शून्य करके पक्का करता है कि वही जाँच लाल हो जाती है।
बेहतर तरीका क्यों काम करता है कोई न कोई संख्या तो हमेशा लौटती है, इसलिए कमज़ोर जाँच फेल हो ही नहीं सकती। मज़बूत जाँच का फेल होना साबित किया गया।
बदली हुई स्थिति आज़माएँ एक साथी आपको ऐसी जाँच भेजती है जो लॉगिन, बिल का जोड़ और छपी पर्ची, तीनों एक साथ देखती है। वह फेल हो जाती है। आप उसे क्या बताएँगे?
अब खुद बनाकर देखें किसी छोटे फंक्शन के लिए एक जाँच लिखें। उसे सही कोड पर पास होते दिखाएँ, फिर कोड जान-बूझकर तोड़कर उसी जाँच को फेल होते दिखाएँ। दोनों नतीजे चिपकाएँ।
जाँच के काम के लिए कोडिंग: 10 में से पाठ 5 आगे वह इनपुट ढूँढ़ें जो इसे तोड़ दे भाग 2 के आख़िर में आपके काम का नमूना बनता है, जिसे आप भेज सकते हैं
मूल या आधिकारिक स्रोत पढ़ें: Python documentation · unittest