के खिलाफ डीएओ परीक्षण के वसंत/हाइबरनेट/जूनिट उदाहरण मैं डीएओ की कार्यक्षमता की जांच के लिए जुनीट परीक्षण को लागू करने की कोशिश करने पर काम कर रहा हूं। (डीएओ मूल वस्तु/तालिका संबंध बनायेगा/पढ़ेगा)।एचएसक्यूएलडीबी
मुसीबत मैं आ रही डीएओ के हठ (गैर-परीक्षण कोड के लिए) एक आंतरिक समाधान वसंत का उपयोग कर के माध्यम से पूरा किया जा रहा है/हाइबरनेट है, जो हमेशा की तरह *.hbm.xml
टेम्पलेट्स है कि ज्यादातर उदाहरण मैं समाप्त पाए गए हैं।
, मैं कुछ कैसे एक में स्मृति HSQLDB करने के लिए सेटअप/पढ़ने (बस बहुत ही बुनियादी कार्यक्षमता) बनाने के लिए डीएओ लागू करने के लिए एक JUnit परीक्षण करने के लिए समझने में कोई परेशानी हो रही है। मुझे कुछ उदाहरण मिल गए हैं, लेकिन इन-हाउस दृढ़ता का उपयोग करने का अर्थ है कि मैं उदाहरणों के कुछ वर्गों को विस्तारित नहीं कर सकता (मुझे एप्लिकेशन-context.xml सेटअप ठीक से प्रतीत नहीं होता है)।
क्या कोई भी इस परियोजना कार्यक्षमता को लागू करने के सर्वोत्तम तरीके की मेरी समझ को आगे बढ़ाने के लिए किसी भी परियोजना/उदाहरणों को देख सकता है (या कोई दस्तावेज़ीकरण)? मुझे लगता है कि यह वास्तव में सरल होना चाहिए, लेकिन मैं जो उदाहरण मिला है उसे लागू करने में समस्याएं चल रहा हूं।
संपादित करें:
यहाँ किसी को जो एक हाथ बातें जा रहा हो रही की जरूरत के लिए बेहतर पठनीयता के लिए मेरे समाधान है,:
मेरे
TestClass
:@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = "classpath:applicationContextTest-Example.xml") @Transactional public class ExampleDaoTest extends AbstractTransactionalJUnit4SpringContextTests { @Resource(name = "sessionFactory") private SessionFactory exampleSessionFactory; @Resource(name = "exampleDao") private ExampleDao exampleDao;
मेरे
applicationContext.xml
फ़ाइल :<!-- List of Daos to be tested --> <bean id="exampleDao" class="org.myExample.ExampleDao"/> <!-- Datasource --> <bean id="example_dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="org.hsqldb.jdbcDriver"/> <property name="url" value="jdbc:hsqldb:mem:ExampleTest"/> <property name="username" value="sa"/> <property name="password" value=""/> </bean> <!-- Session Factory --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="example_dataSource"/> <property name="annotatedClasses"> <list> <value>org.myExample.ExampleClass</value> </list> </property> <property name="hibernateProperties"> .... left to user to choose properties </property> </bean>
कुछ अतिरिक्त जानकारी: मैं भी configur के साथ अनुभव नहीं कर रहा हूँ स्प्रिंग/हाइबरनेट के आयन, मैंने उन्हें पहले से ही पिछली परियोजनाओं में पहले ही कॉन्फ़िगर किया है। मेरे वर्तमान परियोजना, विन्यास की एक उलझन है मैं समझ नहीं कितना "घर में" वर्ग मैं अपने सत्र कारखाने प्राप्त करने के लिए भेजा। सभी DAOs यह (एक अमूर्त वर्ग) का विस्तार, और भीतर एक सार घोषणा है: सार्वजनिक सार SessionFactory getSessionFactory(); मैं यह नहीं समझ सकता कि "getSessionFactory()" विधि कहां से आती है। मुझे लगता है कि इसे किसी भी तरह वसंत द्वारा इंजेक्शन दिया जाना चाहिए, लेकिन मुझे ऐसा करने वाली कोई कॉन्फ़िगरेशन फाइल नहीं मिल रही है। –
धन्यवाद दोस्तों, आप सब मददगार रहे हैं। भविष्य में उन लोगों के लिए: मैं अपने इकाई परीक्षण में शामिल (@ContextConfiguration के माध्यम से के रूप में विली निर्दिष्ट करता है) मेरी applicationContext-Test.xml फ़ाइल जिसमें मैं एक HSQLDB डेटा स्रोत, सत्र कारखाने, लेन-देन प्रबंधक, और Daos सेम के रूप में परिभाषित <सेम आईडी = "myDao" वर्ग = "org.mine.MyDao" />। मेरी टेस्ट क्लास के साथ एनोटेटेड है: @RunWith (SpringJUnit4ClassRunner.class), @Context कॉन्फ़िगरेशन (स्थान = "आपका ऐपकॉन्टेक्स्ट.एक्सएमएल") @ ट्रांसेक्शनल, और मेरे सत्र फैक्ट्री और दाओ संसाधनों (.xml defs से) के रूप में एनोटेटेड हैं: @ संसाधन (नाम = "sessionFactory") –