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