Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

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


(Игорь Кожин) #1

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

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

или

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

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

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


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

(vmaximv) #3

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


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

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


(Yuriy Rumyantsev) #5

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

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

(sidelnikovmike) #6

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


(Виктор Кривизюк) #7

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