Android UI Testing - Локализованное тестирование строки - PullRequest
0 голосов
/ 08 апреля 2020

Это вопрос из двух частей.

1 - Добавляет ли это значение в проект, чтобы проверить, соответствует ли каждая строка правильному виджету на нескольких языках для теста пользовательского интерфейса, связанного с деятельностью, или я должен использовать другой подход или просто не делать этого вообще?

2 - Предполагая, что это правильный подход, я попытался реализовать предложение из следующего поста . К сожалению, языковой стандарт не обновляется для моих тестов пользовательского интерфейса и не проходит один из двух тестов в зависимости от языка системы, который я уже установил на своем устройстве.

@RunWith(AndroidJUnit4ClassRunner.class)
public class RegisterActivityTest {

    @Test
    public void test_onScreenLoadStringsDisplayedInEnglish() {
        testEnglishLocale();
        onView(withId(R.id.welcome_text_view)).check(matches(
            withText(WELCOME_EN)));
    }

    @Test
    public void test_onScreenLoadStringsDisplayedInSpanish() {
        testSpanishLocale();
        onView(withId(R.id.welcome_text_view)).check(matches(
            withText(WELCOME_ES)));
    }


    private void testEnglishLocale() {
        setLocale("en", "US");
    }

    private void testSpanishLocale() {
        setLocale("es", "ES");
    }

    private void setLocale(String language, String country) {
        Locale locale = new Locale(language, country);
        // here we update locale for date formatters
        Locale.setDefault(locale);
        // update locale for app resources
        Resources res = InstrumentationRegistry.getInstrumentation().getTargetContext().getResources();
        Configuration config = res.getConfiguration();
        config.locale = locale;
        res.updateConfiguration(config, res.getDisplayMetrics());
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...