2014-04-30 10 views
5

Voglio eseguire un test di Robolectric per garantire che tutte le stringhe in francese contengano lo stesso numero di segnaposto (sto parlando di% 1 $ s) come le stringhe in inglese.Ottieni stringhe in tutte le lingue in Robolectric

Ho provato ad aggiungere @Config (qualificatori = "fr-land") ma fornisce tutte le stringhe in inglese (impostazione predefinita) e fornisce solo in francese le stringhe che non sono definite in inglese.

Anche provato a creare un nuovo oggetto risorsa e fornire locale personalizzato - sembra funzionare in Android ma non in Robolectric.

Si prega di aiuto!

risposta

4

provare a richiamare lo snippet seguente ad ogni test. questo è stato segnalato come una soluzione qui 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

grazie! lo proverò appena possibile! –

1

sto usando Robolectric 3.1 e la soluzione di nenick non ha funzionato per me, ma la seguente soluzione ha fatto:

private void setLocale(Locale locale) { 
    Locale.setDefault(locale); 
    RuntimeEnvironment.setQualifiers(locale.getLanguage()); 
} 
Problemi correlati