2009-11-23 11 views
5

क्या आप किसी IceFaces एप्लिकेशन के घटकों को अलग कर सकते हैं ताकि उन्हें एकत्रित एप्लिकेशन पर सेलेनियम या HttpUnit जैसे कुछ का उपयोग करने के बजाय अलगाव में परीक्षण किया जा सके?यूनिट परीक्षण बर्फ के टुकड़े

बैकिंग बीन्स को आसानी से अलग किया जा सकता है (यदि टेस्टेबल होने के लिए लिखा गया है) लेकिन मुझे जितना संभव हो उतना शेष एप्लिकेशन का उपयोग करते समय एप्लिकेशन के टेम्पलेट/डिस्प्ले भागों का परीक्षण करने में दिलचस्पी है। क्या यह किया जा सकता है? कैसे?

क्या "डमी डेटा" का उपयोग कर एक IceFaces ऑब्जेक्ट को टेक्स्ट के रूप में प्रस्तुत करने का कोई तरीका है जिसे मैं पारंपरिक यूनिट परीक्षणों के माध्यम से चला सकता हूं?

मैं ये सब करने के तरीकों के बारे में सोच सकता हूं, लेकिन उनमें कई एप्लिकेशन (एक घटक के लिए एक परीक्षण करने के लिए) शामिल हैं। हालांकि, यह चीजों को करने का एक उप-इष्टतम तरीका लगता है।

+1

सभी इच्छुक ढांचे डिजाइनरों के लिए ... पर विचार करें कि कैसे सबसे अच्छा आपके डिजाइन चरण के दौरान परीक्षण की सुविधा के लिए। :- पी –

+0

उस के लिए आमीन! यह निश्चित रूप से ध्यान में रखना एक डिजाइन बाधा है। – Ryan

उत्तर

1

यदि मैं आपका प्रश्न सही ढंग से समझता हूं, तो यह आपके पृष्ठों के लिए विशेष डमी बैकिंग बीन्स बनाने और फिर परीक्षण बनाने का एक साधारण मामला होना चाहिए जेएसएफ कॉन्फ़िगरेशन फ़ाइल उन बीन्स को .jspx फ़ाइलों में मैपिंग कर रही है। डमी बीन्स, निश्चित रूप से, किसी भी व्यावसायिक तर्क या बैक-एंड सेवाओं को नहीं छूएंगे - वे केवल डेटा के सरल सेट होंगे जो आपके परीक्षणों में सत्यापित करना आसान होगा।

अपने डमी बैकिंग बीन्स और टेस्ट कॉन्फ़िगरेशन फ़ाइल में प्रतिस्थापित करने के लिए एक चींटी स्क्रिप्ट बनाएं। अपने परीक्षण चलाएं। यदि आप HTTPUnit जितना भारी नहीं चाहते हैं, और यदि आप अपने ऐप में स्प्रिंग का उपयोग कर रहे हैं, तो वेब सर्वर के बिना पूर्ण वेब संदर्भ बनाने के लिए उत्कृष्ट तरीके के लिए this blog post देखें। परिणामों को सत्यापित करने के लिए आपके परीक्षणों को शायद कच्चे HTML आउटपुट को स्नीफ करने की आवश्यकता होगी।यह मुश्किल होने जा रहा है क्योंकि IceFaces DIV आईडी और डोम पेड़ है कि आप के लिए सूंघ कर सकते हैं के अन्य प्रासंगिक भागों Munge प्यार करता है। (यह अकेला कारण है कि बहुत कुछ JSF डेवलपर्स इकाई परीक्षण JSF उत्पादन करने की कोशिश हो सकती है।)

एक बार अपने परीक्षण सत्यापित कर रहे हैं, एप्लिकेशन में वापस नियमित रूप से सेम और कॉन्फ़िग फ़ाइल स्वैप।

वोला! आपने बस अपने जेएसएफ घटकों का परीक्षण किया है।

मन आप, सेम और config फाइल को बाहर गमागमन के पूरे व्यापार गन्दा है। तो आप बस प्रासंगिक परीक्षण वर्गों के साथ एक application.xml में परीक्षण सेम निर्धारित कर सकते हैं - यह बहुत, बहुत आसान है, तो वसंत का इस्तेमाल किया IceFaces JSF पृष्ठों के लिए समर्थन सेम मैच के लिए किया जाएगा। लेकिन ऐसा जीवन है।

गुड लक, और मुझे पता है कि यह आप के लिए बाहर काम करता है दो!

1

यह वही नहीं है जो आप पूछ रहे हैं लेकिन JSFUnit (जो जुनीट, कैक्टस, एचटीएमएलयूनीट और एचटीपीयूनीट का उपयोग करता है) जेएसएफ भूमि में परीक्षण के लिए एक गंभीर उम्मीदवार प्रतीत होता है। क्या आपने इस विकल्प पर विचार किया था? शायद JSFUnit Wiki और इसके Getting Started Guide पर एक नज़र डालें।

कृपया ध्यान दें कि पूछे जाने वाले प्रश्न IceFaces साथ कुछ समस्या है, लेकिन रिपोर्ट कर रहा है अपनी सुंदर पुराने (जल्दी 2009) और स्थिति परिवर्तित हो सकता है के बाद से तो (वहाँ JBoss भंडार में jboss-jsfunit-examples-icefaces या icefaces-demo-address जैसे कुछ डेमो परियोजनाओं कर रहे हैं तो यह करने के लिए लायक हो सकता है JSFUnit या IceFaces मेलिंग सूचियों पर सटीक स्थिति पूछें)।

संपादित करें: जैसा कि एक टिप्पणी में उल्लिखित है, ओपी कुछ कम "उच्च स्तर" की तलाश में है।

शेल टेस्ट फ्रेमवर्क नकली वस्तु पुस्तकालयों आधार वर्ग अपनी खुद की JUnit बनाने TestCase रों लिए प्रदान करता है, के साथ साथ: शायद Shale Test Framework पर एक नजर है।

नकली वस्तुओं पैकेज में प्रदान की जाती हैं org.apache.shale.test.mock निम्नलिखित कंटेनर एपीआई के लिए:

  • जावा सर्वर चेहरे
  • सर्वलेट

अस्वीकरण: अपाचे शेल मई 2009 में Attic में चले गए (यानी यह जीवन के अंत तक पहुंच गया है) लेकिन मुझे जेएसएफ के लिए कोई अन्य "परिपक्व" नकली ढांचा नहीं पता है, इसलिए मैं हूं वैसे भी इसका उल्लेख (कोड अभी भी है)। मैं अन्य समाधानों के लिए बहुत अधिक रुचि के साथ इस धागे का पालन करूंगा :)

+0

हाँ मैंने इसे देखा था। अफसोस की बात है कि मेरी जरूरतों के लिए भी "उच्च स्तर" है। मैं जेएसएफयूनीट के रूप में, पूरे ढेर के बजाय अलगाव में प्रत्येक टुकड़ा का परीक्षण करना चाहता हूं। – Ryan

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