t.me/atinfo_chat Telegram группа по автоматизации тестирования

Как корректно проверить локализованные сообщения в UI?

Я проверяю текст на экране с помощью:

assertTrue(solo.waitForText("Неправильный пароль"));

или

assertTrue(solo.searchText("Неправильный пароль"));

Однако, мое приложение может работать на нескольких языках, и в конкретный момент времени работает с языком, указанный в Android’е как используемый язык.

Как корректно проверить, что при используемом русском языке искалось сообщение “Неправильный пароль”, а при используемом английском - “Wrong password” ?

  1. Выносить тестовые данные (ожидаемый результат) во внешние файлы ресурсов
  2. При запуске теста определять какой файл локализации должен быть подключен
  3. В тестах использовать не сами сообщения, а ключи, по которым в файле локализации ищется сообщение. Например assertTrue(solo.searchText(getValue(ResourceKeys.WrongPassword")));

Мне думается суть вопроса ТС в том, как достать из андрюши текущую локаль.

  1. и 3. Обращаться к ресурсам напрямую не вариант, т.к. если в ресурсах где-то будет сообщение некорректное, то тест пройдет успешно.

  2. Мой вопрос в этом и заключается: как это сделать?

Не тестирование локализации, но всё же:

  • строки из диалогов, кнопок и вообще из UI собраны в .xls файле(проверенном)
  • в тесте происходит выдергивание нужной строки и сравнивание с .xls файлом

по 1 пункту - файл должен быть проверен. Если неверный текст в файле - значит вообще неверный тест.
Так что @vmaximv все правильно описал. Это самый правильный вариант. Вам нужен некий эталон сообщения , чтоб с ним сравнивать.

Текст как property проверяем или контрол нас тоже интересует?