2017-02-21 18 views
5

में परीक्षण के लिए एम्बेडेड डेटाबेस का उपयोग करें मेरे पास एक वसंत बूट एप्लिकेशन है, इसमें कुछ @Entity कक्षाएं और @RepositoryRestResource उनके लिए रिपोजिट इंटरफेस हैं। अब मैं कुछ परीक्षण लिखना चाहता हूं, जहां मैं जांच सकता हूं कि मैं उन रिपॉजिटरीज़ का उपयोग करके अपने डेटाबेस में एक नया रिकॉर्ड जोड़ सकता हूं, लेकिन मैं इसके लिए अपने कॉन्फ़िगर किए गए MySQL डेटाबेस का उपयोग नहीं करना चाहता, लेकिन इसके बजाय मैं कुछ एम्बेडेड डीबी का उपयोग करना चाहता हूं एच 2 की तरह। फिलहाल मैं जो इस तरह दिखता है एक application.properties फ़ाइल है,:वसंत बूट

spring.jpa.hibernate.ddl-auto=create 
spring.datasource.url=jdbc:mysql://localhost:3306/mydb 
spring.datasource.username=root 
spring.datasource.password=qwerty123 

प्रश्न: मैं परीक्षण के लिए अन्य db उपयोग करने के लिए मेरे एप्लिकेशन कैसे कॉन्फ़िगर करूँ? मेरे पास मेरी परियोजना में कोई एक्सएमएल नहीं है, सब कुछ एनोटेशन पर आधारित है। मैंने @Configuration कक्षा @Bean के साथ DataSource बनाने के लिए परिभाषित करने की कोशिश की और फिर इसे टेस्ट क्लास पर @ContextConfiguration एनोटेशन के साथ उपयोग करें, लेकिन यह कहता है कि यह संदर्भ लोड नहीं कर सकता है।

उत्तर

13

यदि आप मेवेन प्रोजेक्ट का उपयोग कर रहे हैं, तो आप application.properties फ़ाइल को अपने src/test/resources में जोड़ सकते हैं, उदाहरण के लिए निम्न सामग्री के साथ।

<dependency> 
    <groupId>com.h2database</groupId> 
    <artifactId>h2</artifactId> 
    <version>1.4.193</version> 
</dependency> 
+0

यह अभी भी बजाय MySQL डाटाबेस का उपयोग करता है अगर मैं इसे इस तरह से कार्य करें:

# Create DDL spring.jpa.hibernate.ddl-auto=create # H2 in local file system allowing other simultaneous connections spring.datasource.url=jdbc:h2:~/test;AUTO_SERVER=TRUE 

इसके अलावा, आप एच 2 निर्भरता (pom.xml) के रूप में शामिल करने के लिए की जरूरत है। क्या मुझे टेस्ट क्लास पर और जानकारी मिलनी चाहिए? इन गुणों को स्पष्ट रूप से परिभाषित करने के लिए कुछ एनोटेशन और 'मुख्य' फ़ोल्डर से नहीं? –

+0

ठीक है, मैंने टेस्ट क्लास के लिए '@PropertySource (" पथ/से/गुण ") एनोटेशन जोड़ा और अब यह काम करता है, धन्यवाद –

2

आप स्प्रिंग प्रोफ़ाइल का उपयोग करने की आवश्यकता होगी - https://docs.spring.io/spring-boot/docs/current/reference/html/howto-properties-and-configuration.html#howto-set-active-spring-profiles

आप "spring.profiles.active = विकास" का उपयोग करें और फिर अपने विकास प्रोफ़ाइल में एच 2 सहित एक सक्रिय प्रोफ़ाइल परिभाषित करेगा।

उदाहरण YAML का उपयोग करते हैं, लेकिन वे मानक गुण फ़ाइलों में भी काम करते हैं।