2014-12-05 8 views
7

के लिए डिफ़ॉल्ट लोकेल बदलें, आप जुनीट टेस्ट के लिए डिफ़ॉल्ट लोकेल कैसे बदलते हैं। वर्तमान लोकेल एन है। मैं es_ES के लिए परीक्षण करना चाहता हूँ। मैंने कोशिश की:जूनिट परीक्षण

System.setProperty("locale", "es_ES"); 

लेकिन यह काम नहीं प्रतीत होता है।

+0

हां, और? आप कौन सा कोड चलाते हैं जो लोकेल निर्भर है? – fge

+0

मुझे आपके द्वारा बिल्कुल सही अर्थ नहीं मिला। मेरे पास कुछ अपवाद संदेश हैं जिन्हें जांचने की आवश्यकता है। मैंने एक अलग संसाधन फ़ाइल बनाई है, हालांकि, यह लिंक नहीं हो रहा है .. – user3453784

+0

एचएमवेल, शायद इस मामले में आप [इस परियोजना] (https://github.com/fge/msg-simple) पर एक नज़र रखना चाहते हैं ; यह आपको स्थानीय संदेशों को आसानी से प्राप्त करने की अनुमति देता है – fge

उत्तर

16

आप डिफ़ॉल्ट LocaleLocale.setDefault के साथ डिफ़ॉल्ट सेट कर सकते हैं।

जावा वर्चुअल मशीन के इस उदाहरण के लिए डिफ़ॉल्ट लोकेल सेट करता है। यह मेजबान लोकेल को प्रभावित नहीं करता है।

Locale.setDefault(new Locale("es", "ES")); 

निम्नलिखित संसाधन फ़ाइलों के साथ परीक्षण:

  • test.properties

    message=Yes 
    
  • test_es_ES.properties

    message=Sí 
    

यहाँ मेरी मुख्य कार्य है, मेरे डिफ़ॉल्ट स्थान (en_US) करने के लिए कोई परिवर्तन नहीं:

public static void main(String[] args) 
{ 
    ResourceBundle test = ResourceBundle.getBundle("test"); 
    System.out.println(test.getString("message")); 
} 

आउटपुट:

Yes 

यहाँ मेरी मुख्य कार्य अपने परीक्षण वातावरण में होने वाले बदलाव के साथ है, (es_ES):

public static void main(String[] args) 
{ 
    Locale.setDefault(new Locale("es", "ES")); 
    ResourceBundle test = ResourceBundle.getBundle("test"); 
    System.out.println(test.getString("message")); 
} 

आउटपुट:

यह जब एक JUnit परीक्षण मामले के लिए आवेदन किया काम करना चाहिए।

संबंधित मुद्दे