2014-04-30 71 views
5

我想進行一次Robolectric測試,以確保法語中的所有字符串包含與英語中的字符串相同數量的佔位符(我在說的是%1 $ s)。在Robolectric中獲取所有語言的字符串

我試着添加@Config(qualifiers =「fr-land」),但它給出了所有的英文字符串(默認),並且只給出了法文中未用英文定義的字符串。

還嘗試創建一個新的資源對象並提供自定義本地 - 似乎在Android中工作,但不在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()); 
} 
相關問題