मेरे लिए विशिष्ट परिदृश्य:मैं ऑब्जेक्ट बनाने के लिए स्रोत कोड कैसे उत्पन्न करूं जो मैं डिबगिंग कर रहा हूं?
- विरासत कोड मैं पर काम एक बग है कि उत्पादन में केवल एक ग्राहक
- मैं एक डिबगर देते हैं और यह पता लगाने पर उनके प्रणाली समस्या को ठीक करने के लिए कैसे हो रही है है उनके इनपुट दिए गए। लेकिन, मुझे नहीं पता कि त्रुटि अभी तक क्यों हो रही है।
- अब मैं कोशिश करते हैं और पुन: पेश तो
बग को ठीक यही कारण है कि अंतिम चरण वास्तव में कठिन है करने के लिए अपने स्थानीय सिस्टम पर एक स्वचालित परीक्षण लिखना चाहते हैं। इनपुट बहुत जटिल हो सकता है और इसमें बहुत अधिक डेटा है। हाथ से इनपुट बनाना (उदाहरण: ऑब्जेक्ट बनाने के लिए यह 1000 बार करने की कल्पना करें) बहुत कठिन और त्रुटि प्रवण है। असल में आप देख सकते हैं कि मैंने जो उदाहरण दिया है, उसमें एक टाइपो है।
क्या मेरे डीबगर में ब्रेक पॉइंट से फ़ील्ड लेने का एक स्वचालित तरीका है और उस ऑब्जेक्ट को उत्पन्न करने वाले स्रोत कोड उत्पन्न करने के लिए एक स्वचालित तरीका है, उसी तरह पॉप्युलेट किया गया है?
एकमात्र चीज जो मैंने आई है, इस इनपुट को क्रमबद्ध करना है (उदाहरण के लिए एक्सस्ट्रीम का उपयोग करना)। मैं इसे एक फ़ाइल में सहेज सकता हूं और उसे स्वचालित परीक्षण में वापस पढ़ सकता हूं। इसमें एक बड़ी समस्या है: यदि कक्षा कुछ तरीकों से बदलती है (उदाहरण: एक फ़ील्ड/गेटर/सेटर नाम का नाम बदल दिया गया है), तो मैं अब ऑब्जेक्ट को deserialize करने में सक्षम नहीं होगा। दूसरे शब्दों में, परीक्षण बेहद नाजुक हैं।
क्या आप स्पष्ट कर सकते हैं कि XStream की तरह कुछ क्यों फिट नहीं है और आपको स्रोत कोड उत्पन्न करने की पूरी आवश्यकता क्यों है? इससे निश्चित रूप से बेहतर उत्तर प्राप्त करने में मदद मिलेगी। –
फ़ील्ड टेस्ट ईवेंट के लिए परीक्षण मामलों की लंबी अवधि की नाजुकता के साथ क्या समस्या है जिसे आप अभी हल करना चाहते हैं? –
@IraBaxter अल्प अवधि के लिए इसके साथ कुछ भी गलत नहीं है। लेकिन अगर मैं वर्तमान में उससे बेहतर तरीके से निपटने के लिए वहां कुछ अच्छी लाइब्रेरी/तकनीक/रणनीति है, तो मैं इसके बारे में सुनना चाहता हूं। –