2010-08-12 8 views
6

में सभी जुनीट टेस्ट के लिए पर्यावरण चर सेट करना मैं कुछ यूनिट परीक्षण स्थापित करने की कोशिश कर रहा हूं, जो डेटाबेस का उपयोग करते हैं। मैं उत्पादन डेटाबेस के बजाय डेवलपर के कंप्यूटर पर एक परीक्षण डेटाबेस का उपयोग करना चाहता हूं। मेरे पास अब मौजूद विधि डेटाबेस से कनेक्ट करते समय पर्यावरण चर की जांच करना है, और यदि वह चर एक उत्पादन के बजाय स्थानीय से कनेक्ट करने के लिए मौजूद है।ग्रहण

मैं रन कॉन्फ़िगरेशन के माध्यम से एक्लिप्स में पर्यावरण चर सेट कर सकता हूं, लेकिन मैं यह चाहता हूं कि जब भी कोई जुनीट परीक्षण चलाया जाए (बस मामले में)।

क्या यह ग्रहण में संभव है?

उत्तर

5

आप तर्क में डेटाबेस कनेक्शन क्यों इंजेक्ट नहीं करते हैं, जिसके लिए परीक्षण की आवश्यकता होती है, और केवल आपके स्टार्टअप कोड में पर्यावरण चर के साथ सौदा करता है (जिसे आम तौर पर इकाई परीक्षण की आवश्यकता नहीं होती है)?

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

+0

हम्मम्म .... इस काम को करने के लिए कुछ पुन: फैक्टरिंग करने की आवश्यकता हो सकती है ... हालांकि यह वर्तमान में कॉन्फ़िगरेशन और तर्क जैसे मिश्रण से बेहतर समाधान प्रतीत होता है ... – KLee1

1

मुझे लगता है कि हार्ड कोडिंग कनेक्शन जानकारी या परीक्षण/उत्पादन स्विच सबसे अच्छा विचार नहीं है।

असल में, हमारे पास संपत्ति फ़ाइल में डीबी कनेक्शन जानकारी है। यूनिट परीक्षण पर, हम एक और प्रॉपर्टी फ़ाइल का उपयोग करते हैं जिसमें परीक्षण डेटाबेस के लिए कनेक्शन जानकारी होती है। (एक हल्के वजन में स्मृति डीबी इकाई परीक्षण के लिए इष्टतम हो सकता है।)

यूनिट परीक्षणों में आमतौर पर अपने स्वयं के सेटअप फिक्स्चर होते हैं जो प्रत्येक परीक्षण मामलों के लिए एक बुनियादी वातावरण बनाते हैं, इसलिए इसे समर्पित संपत्ति का उपयोग करने में कोई समस्या नहीं होनी चाहिए फ़ाइल।