在Robolectric中获取所有语言的字符串

Bud*_*rin 6 android robolectric

我想做一个Robolectric测试,以确保法语中的所有字符串包含相同数量的占位符(我说的是%1 $ s),就像英语中的字符串一样.

我试图添加@Config(qualifiers ="fr-land"),但是它提供了所有英文字符串(默认),并且只用法语给出了未用英语定义的字符串.

还试图创建一个新的Resource对象并提供自定义本地 - 似乎在Android中工作但在Robolectric中不起作用.

请帮忙!

nen*_*ick 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 );
}
Run Code Online (Sandbox Code Playgroud)