में वेब-आईएनएफ से i18n संसाधनों का उपयोग करना मुझे लगता है कि मैं अपनी कक्षापथ सेटिंग्स के साथ एक त्रुटि में भाग गया।जूनिट परीक्षण
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basenames">
<list>
<value>/WEB-INF/i18n/errors</value>
<value>/WEB-INF/i18n/messages</value>
<value>/WEB-INF/i18n/links</value>
<value>/WEB-INF/i18n/forms</value>
<value>/WEB-INF/i18n/communication</value>
</list>
</property>
</bean>
इन मूल्यों लोड हो रहा है उत्पादन परिवेश में पूरी तरह से काम करता है:
मैं एक अंतर्राष्ट्रीय वेब-एप्लीकेशन जो messagesource इस तरह परिभाषित किया गया है परीक्षण करना चाहते हैं। हालांकि जूनिट टेस्ट चलाते समय, यह उन संपत्ति फ़ाइलों को हल नहीं कर सकता क्योंकि वे क्लासपाथ पर नहीं हैं।
हालांकि, मैं क्योंकि तब मैं सुविधा का उपयोग कर सकते है जहाँ मैं संपत्ति फाइलों में कुछ बदल सकते हैं उन्हें classpath पर नहीं होना चाहते हैं और यह वेबसाइट तुरंत पर परिलक्षित है: Since application servers typically cache all files loaded from the classpath, it is necessary to store resources somewhere else (for example, in the "WEB-INF" directory of a web app). Otherwise changes of files in the classpath will not be reflected in the application.
वसंत applicationContext है वहाँ स्थित: /src/main/resources/spring/applicationContext.xml
और JUnit परीक्षण में लोड इन एनोटेशन के साथ:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:/spring/applicationContext.xml"})
मैं JUnit कैसे प्राप्त रूप में अच्छी तरह से उन गैर classpath संसाधनों को लेने के लिए कर सकते हैं? संपत्ति फाइलें /src/main/webapp/WEB-INF/i18n/*
जूनिट: 4.7 पर हैं।
वसंत: 3.0.5।