मेरे पास एक ऐसा एप्लिकेशन है जो वसंत-एमवीसी का उपयोग करता है, मूल रूप से हमारे पास प्रेजेंटेशन लेयर (कंट्रोलर), सर्विस लेयर (बिजनेस यूनिट्स, हेल्पर्स), एकीकरण लेयर और डेटा एक्सेस लेयर (जेडीबीसी/जेपीए रिपोजिटरीज) है, हम परीक्षण का उपयोग करना सुनिश्चित करना चाहते हैं कोड के भविष्य में जो कुछ भी पहले काम कर रहा था उसे तोड़ नहीं देगा, ऐसा करने के लिए हम यूनिट परीक्षण (मॉकिटो) और एकीकरण परीक्षण (वसंत परीक्षण, वसंत-परीक्षण-एमवीसी) का उपयोग कर रहे हैं।प्रति परत एकीकरण परीक्षण एक अच्छा अभ्यास है?
यूनिट परीक्षण प्रति वर्ग/घटक के लिए किया जाता है, मूल रूप से हमने आने वाले इनपुट और इन घटकों के भीतर संभावित प्रवाह के लिए एक अच्छा कवरेज करने की कोशिश की और यह कार्रवाई ठीक काम कर रही है, यहां पर संदेह नहीं है क्योंकि इकाई परीक्षण इकाइयों को सुनिश्चित करने के बारे में है अपेक्षित के रूप में काम करता है।
एकीकरण परीक्षण अलग-अलग कहानी है और बहुत ही बहस योग्य है, क्योंकि अब हम कभी-कभी वही परिदृश्यों का उपयोग कर रहे हैं जिनका उपयोग हम अपने यूनिट परीक्षण को डिजाइन करने के लिए करते हैं, लेकिन पूरे सिस्टम को असली प्लेटफार्म का उपयोग करके उपलब्ध कराते हैं, लेकिन मुझे संदेह है यहां सर्वोत्तम अभ्यास।
हम एक नियंत्रक है के रूप में, सेवा, डेटा परत एक दृष्टिकोण परत प्रति एक आईटी, उदाहरण हम UserService वर्ग है, हम UserServiceTest जो यूनिट टेस्ट और UserServiceIT हो जाएगा होगा किया जाता है, लेकिन रख-रखाव आदर्श नहीं है , मुझे लगता है कि कभी-कभी हम एक ही परीक्षण परिदृश्य को दोहराते हैं लेकिन अब वास्तविक प्रणाली का उपयोग करते हैं। क्या यह अभ्यास वास्तव में समझ में आता है या किस परिदृश्य में यह समझ में आता है? यदि यूनिट परीक्षण के साथ कक्षा में हमारे पास पहले से 100% परीक्षण कवरेज है, तो हमें इसके लिए आईटी की आवश्यकता क्यों है, ऐसा लगता है कि हमारे पास यह सुनिश्चित करने के लिए केवल वास्तविक घटक ही शुरू हो रहा है?, सभी समान परिदृश्यों को समझने के लिए समझें या कौन सा निर्णय लेने के लिए एक अच्छा मानदंड है?
अन्य दृष्टिकोण केवल एकीकरण परीक्षण के माध्यम से सबसे महत्वपूर्ण परीक्षण मामलों के साथ जाना है, लेकिन केवल नियंत्रक परत से, जिसका अर्थ है आरईएसटी सेवाओं का आह्वान करना और JSON आउटपुट को सत्यापित करना। यह पर्याप्त है?, हमें अन्य परतों में और चीजों को सत्यापित करने की आवश्यकता नहीं है? मुझे पता है कि वास्तविक रीस्ट एपीआई सभी परतों (नियंत्रक, सेवा, दाओ) के नीचे उपयोग करेगा लेकिन यह पर्याप्त है? कुछ विचार आप यहां कहेंगे?
यदि हमारे पास एक सहायक वर्ग है तो मुझे लगता है कि इकाई और आईटी रखने की भावना नहीं है, क्योंकि केवल एक उद्देश्य के लिए विधि के रूप में मुझे लगता है कि यूनिट परीक्षण यहां पर्याप्त होगा, क्या आपको ऐसा लगता है? ।
डेटा परत में कुछ कक्षाएं आईटी का उपयोग करने के लिए मानदंड API, QueryDSL का उपयोग कर सकती हैं क्योंकि कुछ मामलों में इकाई परीक्षण करना बेहद मुश्किल है, यह एक वैध औचित्य है?
मैं सबसे अच्छा तरीका है, टिप्स और प्रथाओं है कि प्रणाली अखंडता के मन में एक वास्तविक और मूल्यवान प्रक्रिया रखते हुए इस सामान के रख-रखाव सुनिश्चित करने का काम करता है पाने के लिए कोशिश कर रहा हूँ।
> प्रस्तुति परत का परीक्षण अंतर्निहित परतों का भी प्रयोग करेगा ... तो बाकी परीक्षण के साथ परेशान क्यों करें? प्रस्तुति परत का परीक्षण शायद ही कभी सभी अंडरलेइंग परतों का उपयोग करता है। इसलिए निचली परतों का परीक्षण प्रस्तुति परत के माध्यम से परीक्षणों और व्यायाम किनारे के मामलों को सुलभ नहीं करना है। – Dave
बिल्कुल मेरी बात। दोनों के लिए गति, रखरखाव और लागत भी ध्यान में रखें। * लेकिन * यदि @ कोइटोटर मामले में ऐसा दृष्टिकोण व्यवहार्य है, तो क्यों नहीं? सभी जोखिम-आधारित विश्लेषणों के बाद सुझाव देना चाहिए कि किस व्यापार-बंद का चयन किया जा सकता है। – ekostadinov