के साथ यूनिट परीक्षण बनाम एकीकरण परीक्षण मैं स्प्रिंग एमवीसी प्रोजेक्ट पर काम कर रहा हूं, और मेरे पास स्रोत पेड़ के सभी विभिन्न घटकों के लिए यूनिट परीक्षण हैं।स्प्रिंग
उदाहरण के लिए, अगर मैं एक नियंत्रक HomeController
है, जो एक LoginService
यह में इंजेक्शन की जरूरत है, तो मेरी इकाई परीक्षण HomeControllerTest
में मैं बस के रूप में सामान्य वस्तु (वसंत के बाहर) का दृष्टांत और संपत्ति इंजेक्षन:
protected void setUp() throws Exception {
super.setUp();
//...
controller = new HomeController();
controller.setLoginService(new SimpleLoginService());
//...
}
यह एक अलग इकाई के रूप में प्रत्येक घटक का परीक्षण करने के लिए बहुत अच्छा काम करता है - सिवाय इसके कि मेरे पास इस परियोजना में कुछ दर्जन वर्ग हैं, कक्षा लिखने और इसके लिए एक सफल इकाई परीक्षण लिखने के बाद, मैं अपने स्प्रिंग एमवीसी को अपडेट करना भूल जाता हूं संदर्भ फ़ाइल जो तैनात अनुप्रयोग में वास्तविक वायरिंग-अप करता है। मुझे पता चला है कि जब मैं प्रोजेक्ट को टॉमकैट पर तैनात करता हूं और गैर-वायर्ड-अप बीन्स से नलपॉइंटर्स का समूह ढूंढता हूं तो मैं संदर्भ फ़ाइल को अपडेट करना भूल जाता हूं। यह अलग-अलग सेम के लिए इकाई परीक्षण, बनाने के लिए के रूप में मैंने किया है सामान्य है, और फिर परीक्षण का एक दूसरा सूट बना सकते हैं -
यह मेरा पहला स्प्रिंग परियोजना है:
तो, यहाँ मेरी सवाल कर रहे हैं (एकीकरण परीक्षण) परीक्षण करने के लिए कि वास्तविक अनुप्रयोग संदर्भ के साथ सब कुछ अपेक्षित काम करता है? क्या इसके लिए एक स्थापित सर्वोत्तम अभ्यास है?
इसके अतिरिक्त, आप इकाई परीक्षणों को एकीकरण परीक्षण से अलग कैसे करते हैं? मेरे पास
src
में सभी स्रोत कोड हैं, यूनिट परीक्षणtest
में - एकीकरण परीक्षण मामलों के लिए दूसरा परीक्षण फ़ोल्डर (जैसेtest-integration
) होना चाहिए? और नहीं बल्कि पहिया फिर से आविष्कार से मैं नहीं बल्कि समुदाय के बाकी पूछना -
चूंकि यह मेरी पहली वसंत परियोजना है, मैं उत्सुक दूसरों आमतौर पर बात की इस तरह करने के बारे में जाना कैसे कर रहा हूँ।
यह एक अच्छी रणनीति की तरह लगता है। लेकिन एक ही निर्देशिका में यूनिट परीक्षण और एकीकरण परीक्षण के साथ, ग्रहण के लिए उन्हें अलग करने का कोई तरीका नहीं है, है ना? ग्रहण परीक्षण चलाने के लिए ग्रहण का एकमात्र विकल्प केवल एक को चलाने या किसी निश्चित फ़ोल्डर में चलाने के लिए है - उन्हें एंट जैसे नाम से विभाजित नहीं किया जा सकता है। –
मुझे वापस जाना था और ग्रहण की जांच करना था - आप सही हैं, अगर वे एक ही निर्देशिका में हैं तो परीक्षणों को अलग करने का कोई तरीका नहीं दिखता है। मेरा आखिरी स्प्रिंग प्रोजेक्ट आइडिया/इंटेलिज में किया गया था और यह काफी लंबा रहा है कि मुझे याद नहीं है कि आईडीई कॉन्फ़िगरेशन वास्तव में क्या था। –