2010-06-13 12 views
10

मैं आपसे पूछना चाहता हूं कि जेएसपी के लिए यूनिट परीक्षण बनाने के लिए वहां कौन सी तकनीकें मौजूद हैं।यूनिट परीक्षण जेएसपी

मुझे पहले से ही HtmlUnit/HttpUnit/JWebUnit/सेलेनियम संभावनाओं के बारे में पता है।

धन्यवाद!

उत्तर

10

मैं कहूंगा कि उपरोक्त उल्लिखित ढांचे में से एक के साथ सख्ती से एक परीक्षण नहीं है, इसके वेब इंटरफ़ेस का उपयोग करके एक वेब ऐप (चाहे वह जेएसपी या अन्य हो) का परीक्षण करें। यूनिट परीक्षण का अर्थ है अलगाव में आपके ऐप (एक विधि, एक वर्ग) के छोटे हिस्सों का परीक्षण करना। वेब ढांचे के साथ, आप पूरी तरह से वेब ऐप का परीक्षण करते हैं, इसलिए यह सिस्टम या एकीकरण परीक्षण की तरह है। जो यह नहीं कहना है कि यह उपयोगी नहीं है - इसके विपरीत - शब्दावली को स्पष्ट करना बेहतर है।

यह कहकर कि, यदि मैं एक जेएसपी का परीक्षण करना चाहता हूं, तो मैं ऊपर वर्णित कुछ उपकरणों का उपयोग करके जेएसपी से जुड़े सभी विशिष्ट परिदृश्यों के सिस्टम परीक्षण से संतुष्ट हूं।

हालांकि, अगर आप वास्तव में चाहते हैं "क्लासिक" इकाई परीक्षण, मैं निकटतम आप प्राप्त कर सकते हैं एक सर्वलेट वर्ग में अपने JSP संकलन है, तो (जैसे JUnit से सीधे सर्वलेट तरीकों बुला लगता है, करने के लिए EasyMock की तरह एक मजाक ढांचे का उपयोग कर एचटीपी अनुरोध, प्रतिक्रिया आदि वस्तुओं को तैयार करें)।

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

+0

हाँ मुझे पता है कि एचटीएमएल यूनिट और अन्य एकीकरण परीक्षण हैं और यूनिट परीक्षण नहीं। कारण मैंने उनका उल्लेख किया है कि मुझे पता था कि लोग उन्हें विकल्प के रूप में उल्लेख करेंगे, और मैं समय बचाने के लिए चाहता था। लेकिन वैसे भी, आपके उत्तर के लिए धन्यवाद :) –

+0

@Avi, इस बीच मुझे इस पर कुछ और विचार मिले, मेरा अपडेट देखें। –

+1

+1: यह एक बुद्धिमान उत्तर है। अपने व्यापार तर्क को उस चीज़ में रखें जो * टेस्टेबल है, और अपने जेएसपी को इतना आसान रखें कि यह "स्पष्ट रूप से कोई बग" ("कोई स्पष्ट बग" के बजाय) के शीर्षक के नीचे आता है। –

संबंधित मुद्दे