हर वसंत बूट पर एक भी @Configuration वर्ग ओवरराइड मेरी वसंत बूट आवेदन पर मैं अपने @Configuration
वर्गों में से एक के लिए एक परीक्षण विन्यास के साथ ओवरराइड करना चाहते (विशेष रूप से मेरी @EnableAuthorizationServer
@Configuration
वर्ग), मेरे परीक्षण के सभी पर।@Test
अब तक spring boot testing features और spring integration testing features का अवलोकन कोई सीधा समाधान सामने आया है के बाद:
@TestConfiguration
: यह विस्तार नहीं ओवरराइड करने के लिए है,@ContextConfiguration(classes=…)
और@SpringApplicationConfiguration(classes =…)
मुझे पूरी कक्षा को ओवरराइड करने देता है, केवल एक वर्ग नहीं;@Test
के अंदर एक आंतरिक@Configuration
कक्षा डिफ़ॉल्ट कॉन्फ़िगरेशन को ओवरराइड करने का सुझाव दिया गया है, लेकिन कोई उदाहरण प्रदान नहीं किया गया है;
कोई सुझाव?
धन्यवाद। मैंने देखा है कि मैं 'src/test/java' पर ओवरराइडिंग '@ सक्षम प्राधिकरण सर्वर' @ कॉन्फ़िगरेशन' कक्षा को छोड़कर सभी परीक्षणों पर कक्षा को ओवरराइड भी कर सकता हूं। स्प्रिंग बूट नियम :-) – NotGaeL
एक sidenote के रूप में, यदि आपको किसी विशेष '@ कॉन्फ़िगरेशन' पर एक मान बदलने की आवश्यकता है, तो इसे ओवरराइड करने के बजाय आप अपने परीक्षणों के लिए एक विशिष्ट वसंत बूट प्रोफ़ाइल (जैसे नाम 'test') सक्षम कर सकते हैं एनोटेशन '@ActiveProfiles ({"test", ...}) का उपयोग करके' अपने टेस्ट क्लास (एसएस) पर। फिर एक सरल 'अगर (Arrays.asList (environment.getActiveProfiles()) में आपके' @ कॉन्फ़िगरेशन 'पर' ("test") शामिल है। – NotGaeL
आपका समाधान विफल रहता है यदि अन्य बीन्स में से एक आंतरिक रूप से उपयोग करता है, तो इसे कुछ बीन वर्ग द्वारा इंजेक्शन दिया जाता है। इसे काम करने के लिए बस स्प्रिंगबूटटेस्ट एनोटेशन द्वारा उपयोग की जाने वाली कक्षाओं की सूची में कॉन्टेक्स्ट कॉन्फ़िगरेशन क्लास जोड़ें। वह है: @SpringBootTest (कक्षाएं = {Application.class, SomeTest.ContextConfiguration.class}) –