2010-01-25 14 views
5

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

कक्षाओं से हम जो कक्षाएं पुनर्प्राप्त करते हैं, वे प्रतिदिन बदलते हैं और हमें यह सुनिश्चित करने की आवश्यकता है कि वे अभी भी ज्ञात इनपुट को संसाधित कर सकें।

नोट करें कि ये कक्षाएं वेबसर्वर का परीक्षण नहीं करती हैं, वे स्थानीय रूप से चलती हैं और एक्सएमएल को एक कस्टम प्रारूप में बदलती हैं। मैं वेबसर्वर का परीक्षण नहीं कर रहा हूं।

इन कक्षाओं को तब विशिष्ट पैकेज संरचना में रखा जाना चाहिए और इनपुट डेटा के ज्ञात सेट के खिलाफ चलाया जाना चाहिए और ज्ञात आउटपुट डेटा की तुलना में।

मैं यह सुनिश्चित करने के लिए प्रत्येक रात स्वचालित रूप से ऐसा करना चाहता हूं कि जेनरेट की गई कक्षाएं सही हैं।

इसे प्राप्त करने का सबसे अच्छा तरीका क्या है?

विशेष रूप से क्या सबसे अच्छा तरीका करने के लिए:

  1. एक वेबसर्वर से कोड को पुनः प्राप्त करने और एक फाइल में रख
  2. कोड संकलन और उसके बाद इसे कहते

मुझे यकीन है कि एक कर रहा हूँ जूनिट और चींटी का मिश्रण इसे प्राप्त करने में सक्षम होगा लेकिन इसके लिए मानक समाधान/दृष्टिकोण है?

+1

इसी प्रकार से आपके प्रश्न से पहले 18 मिनट पहले पूछा गया था: http://stackoverflow.com/questions/2131935/automatic- जनरेशन-of-unit-tests-for-java आप इसे भी ट्रैक करना चाहते हैं :) * अपडेट * : आप दोनों लंदन से हैं .. सहयोगी? : o – BalusC

+0

चूंकि यह एक बहुत अधिक जानकारी देता है, हम इस बारे में एक दूसरे के रूप में बंद करने के लिए वोट कैसे देते हैं? –

+0

हाहाहा नहीं हम एक साथ काम नहीं करते हैं। लंदन एक बहुत बड़ी जगह है। आपकी मदद के लिए धन्यवाद –

उत्तर

2

सबसे पहले, अपने प्रश्न का उत्तर देने के लिए: नहीं, मुझे नहीं लगता कि मानक इस के लिए दृष्टिकोण है। यह काफी एक असामान्य स्थिति ;-)

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

0

आपको अपनी वेब सेवा के लिए "नकली" इंटरफेस बनाना चाहिए जो (ए) वही तरीके से व्यवहार करता है और (बी) एक ज्ञात उत्तर देता है।

आपको लाइव वेब सेवा के साथ कुछ अन्य एकीकरण परीक्षण करना चाहिए जहां कोई व्यक्ति परिणाम देखता है और निर्णय लेता है कि क्या उन्होंने काम किया है।

+0

हाय मैंने सिर्फ सवाल स्पष्ट किया है, यह webservice का परीक्षण करने के लिए नहीं है, मैं बस इससे कक्षाएं पुनर्प्राप्त करता हूं। –

+0

मुझे मोजे से नफरत है। यह आमतौर पर वेब सेवा बनाने के काम को दो बार होता है, और आप अपने सभी डिबगिंग समय को यह जानने का प्रयास करते हैं कि बग वेब सेवा या नकली में है या नहीं। –

+0

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

2

आप निरंतर एकीकरण ;-) रूप में एक ही लक्ष्य है

हो सकता है कि इस सरल कार्य के लिए थोड़ा overkill है, लेकिन इस, कुछ पाने नियमित रूप से संकलन कुछ और परीक्षण करने के लिए कुछ मानक तरीका है।

उदा। आप hudson आज़मा सकते हैं।

+0

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

+1

"sth" का क्या अर्थ है? –

0

क्या आप केवल वेबसाईट पर प्रकाशित होने के बाद उत्पन्न कक्षाओं का परीक्षण कर सकते हैं? पीढ़ी के दौरान या उसके बाद परीक्षण करने का आपके पास कोई रास्ता नहीं है?

एक विचार, यदि जेनरेट कोड जटिल नहीं है, तो इसे ग्रोवी क्लासलोडर के माध्यम से लोड करना और इसके खिलाफ अपने परीक्षण चलाने के लिए है। उदाहरण के लिए this page देखें।

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