टेस्ट कीड़े को परेशान करने के लिए "स्मार्ट" नहीं होना चाहिए।
जिस कोड को आप लिख रहे हैं वह विनिर्देशों का एक सेट है। (यदि X तब Y, जब तक कि Z किस स्थिति में Q, आदि)। सभी परीक्षण को पूरा करने का प्रयास करना चाहिए यह निर्धारित करना है कि एक्स वास्तव में वाई है जब तक कि जेड किस स्थिति में नहीं है। इसका मतलब है कि सभी परीक्षण जो होना चाहिए वह है एक्स को सेट करना और वाई को सत्यापित करना।
लेकिन यह सभी मामलों को कवर नहीं करता है, आप शायद कह रहे हैं, और आप सही होंगे। लेकिन अगर आप परीक्षण को "स्मार्ट" बनाने के लिए पर्याप्त हैं, तो यह जानने के लिए कि एक्स केवल वाई द्वारा होना चाहिए यदि जेड नहीं है तो आप मूल रूप से परीक्षण में व्यावसायिक तर्क को फिर से लागू कर रहे हैं। यह उन कारणों के लिए समस्याग्रस्त है जिन पर हम नीचे अधिक गहराई से जाएँगे। आपको अपना पहला परीक्षण "स्मार्ट" बनाकर कोड कवरेज में सुधार नहीं करना चाहिए, आपको इसके बजाय एक दूसरा गूंगा परीक्षण जोड़ना चाहिए जो X और Z सेट करता है और Q को सत्यापित करता है। इस तरह आपके दो परीक्षण होंगे, एक जो सामान्य मामले को कवर करता है ( कभी-कभी खुश मार्ग के रूप में भी जाना जाता है) और एक जो एक अलग परीक्षण के रूप में किनारे के मामले को कवर करता है।
इसके लिए कई कारण हैं, पहला और सबसे महत्वपूर्ण यह है कि आप कैसे निर्धारित करते हैं कि एक असफल परीक्षा व्यवसाय तर्क में बग या परीक्षणों में बग के कारण है? स्पष्ट रूप से इसका उत्तर यह है कि यदि परीक्षण यथासंभव सरल हैं, तो वे कीड़े को परेशान करने की संभावना नहीं रखते हैं। अगर आपको लगता है कि आपके परीक्षणों को परीक्षण की आवश्यकता है तो आप गलत परीक्षण कर रहे हैं ।
अन्य कारणों में शामिल है कि आप केवल प्रयास की नकल कर रहे हैं (जैसा कि मैंने पहले ही उल्लेख किया है, एक परीक्षण में पर्याप्त स्मार्ट लिखने के लिए एक ही परीक्षण में सभी संभावनाओं का उपयोग करने के लिए मूल रूप से व्यावसायिक तर्क की नकल कर रहे हैं जो आप पहली बार परीक्षण करने की कोशिश कर रहे हैं), यदि आवश्यकताएं बदल जाती हैं फिर नई आवश्यकताओं को प्रतिबिंबित करने के लिए परीक्षणों को बदलना आसान होना चाहिए, परीक्षण एक प्रकार के प्रलेखन के रूप में कार्य करते हैं (वे कहने का एक औपचारिक तरीका है कि परीक्षण के तहत इकाई का विनिर्देश क्या है), और इसी तरह।
TL: DR: यदि आपके परीक्षणों को परीक्षण की आवश्यकता है तो आप इसे गलत कर रहे हैं। गूंगा परीक्षण लिखें ।