में बहुत अलग ढंग से व्यवहार कर हम एक कस्टम डेटा स्रोत कि BasicDataSource फैली है। हमने getConnection विधि को ओवरराइड कर दिया है जो इसके अंदर कुछ चीजें करता है। जब हम परीक्षण के बाहर वेबपैप चलाते हैं, जब हम नियंत्रक से सेवा कहते हैं तो यह एक नया कनेक्शन लेगा और सेवा पूरा होने तक उस कनेक्शन का उपयोग करेगा। सब ठीक हैं। हालांकि, एकीकरण परीक्षण के अंदर, परीक्षण से पहले कनेक्शन को पकड़ लिया जाता है, यहां तक कि नियंत्रक को भी कॉल करता है।Grails कनेक्शन एकता परीक्षण
नियमित चलाने के नीचे प्रवाह: कॉल नियंत्रक -> नियंत्रक कॉल सेवा विधि -> कनेक्शन पकड़ा जाता है -> सेवा विधि चलाया जाता है और
एकता टेस्ट नियंत्रक को प्रस्तुत करती है: कनेक्शन पकड़ा जाता है -> कॉल परीक्षण से नियंत्रक -> सेवा विधि से चलाया जाता है और नियंत्रक को
जरूरत नहीं कहने के लिए, यह हमें सही कनेक्शन होने के रूप में समस्याओं दे रहा है देता है हमारे ऐप्लिकेशन के लिए बहुत महत्वपूर्ण है -> नियंत्रक सेवा प्रणाली को बुलाती है। विचार?
संपादित करें: अभी भी इस के साथ महत्वपूर्ण मुद्दों हो रही। हम एक बिंदु है जहां हम एकीकरण परीक्षणों बनाने से बचने के लिए, या ऐसा कुछ मैनुअल कनेक्शन स्विचिंग (जो परीक्षण के आधे बिंदु धरा)
DataSource.groovy
dataSource {
pooled = true
dialect="org.hibernate.dialect.OracleDialect"
properties {
maxActive = 50
maxIdle = 10
initialSize = 10
minEvictableIdleTimeMillis = 1800000
timeBetweenEvictionRunsMillis = 1800000
maxWait = 10000
testWhileIdle = true
numTestsPerEvictionRun = 3
testOnBorrow = true
}
}
hibernate {
cache.use_second_level_cache = true
cache.use_query_cache = true
cache.provider_class = 'net.sf.ehcache.hibernate.EhCacheProvider'
}
यू ControllerUnitTestCase को लागू कर रहे हैं? या सिर्फ यूनिटटेस्टकेस ?! –
नियंत्रकUnitTestCase – Joseph
क्या आप अपनी DataSource.groovy फ़ाइल पोस्ट कर सकते हैं? –