मैं एक वीडियो गेम के लिए स्टीयरिंग सिस्टम के लिए यूनिट टेस्ट लिख रहा हूं। सिस्टम में कई व्यवहार हैं (कारण ए के कारण इस क्षेत्र से बचें, कारण बी से इस क्षेत्र से बचें, प्रत्येक क्षेत्र के नक्शे में थोड़ा सा संदर्भ जोड़ते हैं। एक अलग कार्य फिर नक्शे को पार्स करता है और एक वांछित आंदोलन पैदा करता है।
मुझे यह तय करने में परेशानी हो रही है कि व्यवहारों के लिए यूनिट परीक्षण कैसे लिखें। जैसा कि टीडीडी बताता है, मुझे केवल इस बात में दिलचस्पी है कि व्यवहार वांछित आंदोलन को कैसे प्रभावित करता है। उदाहरण के लिए, कारण-से-कारण-ए को खराब स्थिति के सुझाव से दूर एक आंदोलन में परिणाम करना चाहिए। मुझे वास्तव में परवाह नहीं है कि व्यवहार मानचित्र के संदर्भ में कैसे या क्यों जोड़ता है, केवल यह कि वांछित आंदोलन स्थिति से दूर है।
इसलिए प्रत्येक व्यवहार के लिए मेरे परीक्षणों ने व्यवहार की स्थापना की, इसे मानचित्र पर लिखें, फिर वांछित आंदोलन को पूरा करने के लिए मानचित्र-पार्सिंग फ़ंक्शन को निष्पादित करता है। अगर वह आंदोलन मेरे विनिर्देशों को पूरा करता है तो मुझे खुशी है।
हालाँकि अब मेरे परीक्षण सही ढंग से काम करने वाले दोनों व्यवहारों और सही ढंग से काम करने वाले मानचित्र पार्सिंग फ़ंक्शन पर निर्भर करते हैं। यदि पार्सिंग फ़ंक्शन विफल हो जाता है, तो मुझे एक जोड़े के बजाय सैकड़ों असफल परीक्षण मिलेंगे। कई परीक्षण-लेखन मार्गदर्शकों का सुझाव है कि यह एक बुरा विचार है।
हालाँकि, अगर मैं नक्शे का मजाक उड़ाकर सीधे तौर पर व्यवहार के उत्पादन के खिलाफ परीक्षण करता हूं, तो निश्चित रूप से मैं कार्यान्वयन के लिए बहुत कसकर युग्मन कर रहा हूं? यदि मैं थोड़ा अलग व्यवहार का उपयोग करके मानचित्र से समान वांछित आंदोलन प्राप्त कर सकता हूं, तो परीक्षण अभी भी पास होना चाहिए।
इसलिए अब मैं संज्ञानात्मक असंगति को झेल रहा हूं। इन परीक्षणों की संरचना का सबसे अच्छा तरीका क्या है?