2009-09-29 18 views
6

मैं सत्र बीन्स में टीडीडी लागू करने का एक तरीका ढूंढ रहा हूं।यूनिट परीक्षण एक ईजेबी

कोई भी इकाई परीक्षण करने के तरीके पर सलाह और लिंक प्रदान कर सकता है?

ऐसा करने के लिए जुनीट का उपयोग कैसे करें?

पीएस: मैं टेस्ट संचालित विकास और सत्र बीन्स के लिए नया हूं।

मैं ईजेबी v2 का उपयोग कर रहा हूं।

उत्तर

8

मुझे लगता है कि आप EJB2.x सत्र बीन्स के बारे में बात कर रहे हैं। जानवरों के इस तरह के लिए, मुझे क्या करना चाहते है:

  • एक आवरण एक POJO है कि आप एक कंटेनर के बाहर आसानी से परीक्षण कर सकते हैं करने के लिए है कि बस प्रतिनिधियों तर्क के रूप में सत्र बीन का प्रयोग करें। बाहर कंटेनर परीक्षण, तेजी से बेहतर है, आसान, आदि लेकिन इस तरह के तैनाती वर्णनकर्ता सत्यापन के रूप में चीजों को कवर नहीं होगा - और/या -
  • में कंटेनर परीक्षण (जाँच Howto EJB प्रलेखन) के लिए
  • कुछ Cactus की तरह प्रयोग - और/या -
  • एकीकरण परीक्षण के लिए Cargo के साथ अपने ईजेबी मॉड्यूल को बनाएं और तैनात करें।
+0

+1 पर एक नज़र डालें।:) –

+0

दरअसल, मैंने वर्षों से कैक्टस का उपयोग नहीं किया :) –

+0

मैंने उपयोग के लिए कैक्टस सेट करने का प्रयास किया, लेकिन मुझे वास्तव में यह नहीं मिला! मुझे लगता है कि सेटअप करना बहुत मुश्किल है। मैं ग्रहण और नेटबीन का उपयोग कर रहा हूं। – Attilah

5

आप यह नहीं कहते कि आप किस ईजेबी का उपयोग कर रहे हैं। यदि यह ईजेबी v3 है, तो Ejb3Unit देखें। वेबसाइट से:

Ejb3Unit एक JUnit विस्तार है और स्वचालित स्टैंडअलोन JUnit सभी EJB 3.0 के लिए परीक्षण निष्पादित कर सकते हैं अनुरूप जावा ईई परियोजनाओं। कंटेनर परीक्षण दृष्टिकोण से बाहर छोटे बिल्ड-टेस्ट-चक्र, की ओर जाता है क्योंकि कोई कंटेनर परिनियोजन आवश्यक नहीं है।

हालांकि मैं ईजेबी-विनिर्देशों से कार्यक्षमता को अलग करने का समर्थन करता हूं। यह आपको कंटेनर के बाहर जटिल कार्यक्षमता का परीक्षण करने और उपरोक्त जैसे ढांचे का उपयोग किए बिना अनुमति देगा। आपके अधिकांश परीक्षण POJO (सादे पुराने जावा ऑब्जेक्ट्स) का परीक्षण करेंगे और अपेक्षाकृत कुछ आपके दृढ़ता ढांचे परीक्षण पर ध्यान केंद्रित करेंगे।

संपादित करें: तो यदि आप ईजेबी v2 का उपयोग कर रहे हैं तो स्पष्ट रूप से पहले बिंदु को अनदेखा करें। हालांकि, दूसरा बिंदु मान्य रहता है।

2

मैं वर्तमान में यूनिट परीक्षणों के लिए एम्बेडेड कंटेनर के रूप में अपाचे openejb का उपयोग कर रहा हूं। हालांकि यह एक ईजेबी 3/जेपीए प्रोजेक्ट है, इसे ईजेबी 2 के लिए भी काम करना चाहिए।

Properties props = new Properties(); 
props.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.LocalInitialContextFactory"); 

// a DataSource named "mysql" 
props.put("mysql", "new://Resource?type=DataSource"); 
props.put("mysql.JdbcDriver", "com.mysql.jdbc.Driver"); 
props.put("mysql.JdbcUrl", "jdbc:mysql://localhost:3306"); 
props.put("mysql.JtaManaged", "true"); 
props.put("mysql.DefaultAutoCommit", "false"); 
props.put("mysql.UserName", "root"); 
props.put("mysql.Password", "root"); 

Context context = new InitialContext(props); 
LocalInterface local = (LocalInterface)context.lookup(localInterfaceName + "BeanLocal"); 
DataSource ds = (DataSource)context.lookup("java:openejb/Resource/mysql"); 

संपादित: अपने परीक्षणों में कंटेनर bootstrap करने के लिए आप सिर्फ एक InitialContext उद्देश्य यह है कि आप बाद में देखने के लिए EJBs और datasources उपयोग कर सकते हैं बनाने के लिए वहाँ पर 'परीक्षण तकनीक' अनुभाग में कुछ और प्रलेखन है http://openejb.apache.org/3.0/index.html

+0

क्या आप मुझे इस पर एक अच्छे ट्यूटोरियल के लिंक प्रदान कर सकते हैं? आशाजनक लगता है। – Attilah

0

मॉक्रुनर का उपयोग ईजेबी आधारित अनुप्रयोगों के परीक्षणों को लिखने के लिए मॉकईजेबी के संयोजन के साथ किया जा सकता है। अपने पिछले दो सुझाव के लिए, मैं वर्षों में कैक्टस के बारे में नहीं सोचा -
इस
http://mockrunner.sourceforge.net/examplesejb.html

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