2014-04-30 8 views
5

में सभी भाषाओं में तार प्राप्त करें मैं यह सुनिश्चित करने के लिए एक रोबोलेक्ट्रिक परीक्षण करना चाहता हूं कि फ्रेंच में सभी तारों में प्लेसहोल्डर (मैं% 1 $ s के बारे में बात कर रहा हूं) अंग्रेजी में तारों की तरह ही है।Robolectric

मैंने @ कॉनफिग (क्वालीफायर = "फ्र-लैंड") जोड़ने की कोशिश की लेकिन यह सभी स्ट्रिंग्स अंग्रेजी (डिफ़ॉल्ट) में देता है और केवल फ्रेंच में स्ट्रिंग्स देता है जो अंग्रेजी में परिभाषित नहीं हैं।

ने भी एक नया संसाधन ऑब्जेक्ट बनाने और कस्टम स्थानीय प्रदान करने की कोशिश की - एंड्रॉइड में काम करने लगता है लेकिन Robolectric में नहीं।

कृपया मदद करें!

उत्तर

4

प्रत्येक परीक्षण में निम्न स्निपेट को कॉल करने का प्रयास करें। यह एक समाधान के रूप में यहाँ https://github.com/robolectric/robolectric/issues/914

public static void setLocale(final Context context, final String language) 
{ 
    final Locale locale = new Locale(language); 
    Robolectric.shadowOf(context.getResources().getConfiguration()).setLocale(locale); 
    Locale.setDefault(locale); 
} 
+0

धन्यवाद! मैं इसे एएसएपी का परीक्षण करूंगा! –

1

मैं Robolectric 3.1 और nenick के समाधान का उपयोग कर रहा मेरे लिए काम नहीं किया की सूचना मिली थी, लेकिन अगले समाधान किया:

private void setLocale(Locale locale) { 
    Locale.setDefault(locale); 
    RuntimeEnvironment.setQualifiers(locale.getLanguage()); 
} 
संबंधित मुद्दे