Недавно мы обнаружили проблему, связанную с локалью, в нашем приложении, и, хотя ее было легко исправить (как только мы выяснили, что происходит), у меня появилась команда, которая думает о методах модульного тестирования в этом отношении.
Мы хотели бы уладить эти проблемы раньше, в идеале, прежде чем они обнаружатся заказчиком, и мы хотим защитить себя от повторного появления ошибок, специфичных для локали, в будущем, но дублирование каждого модульного теста по крайней мере в одной другой культуре кажется большим накладные расходы.
Как вы или как вы подходите к многоязычному модульному тестированию?
unit-testing
localization
Адам Лир
источник
источник
Ответы:
Как правило, вам не нужно дублировать каждый юнит-тест. Вы должны определить, что действительно зависит от локали (хороший контрольный список здесь ). Многие вещи, связанные с интернационализацией, подвергаются более высокому уровню тестирования, чем модульное тестирование.
Если вы имеете дело со строковыми данными, которые могут поступать в разных кодировках, то вы можете использовать «тестирование на основе данных», то есть передачу данных в разных кодировках в один и тот же метод тестирования. Для Java лучше всего подходит TestNG.
Другая возможная проблема - форматирование даты / времени и анализ. Большинство языков использует: для разделения элементов времени, но есть такие, которые используют точки, а бразильцы используют hm и s (12h15m30s). Это также может быть использовано для передачи данных в разных локалях - вам не нужно тестировать их все.
И тестирование GUI с языками справа налево обычно не является предметом модульного тестирования.
Суть в том, что вам нужно определить, какие данные в ваших модульных тестах зависят от конкретной локали, и использовать управляемое данными тестирование (поставщики данных), чтобы предоставить эти данные для ваших тестов.
источник
Вот несколько предложений:
Всегда развивайтесь на машине с локальными настройками, отличными от вашей основной целевой аудитории. Это поможет вам быстро найти ошибки, связанные с датами, валютой и каждой проблемой числового форматирования. Сделайте то же самое со своим сервером сборки, поместите его в Бразилии или Вьетнаме (не физически, а только в настройках).
Используйте акценты и специальные символы в заголовке теста, строках и т. Д. В модульных тестах. Наиболее распространенная проблема интернационализации, которую я получаю с программным обеспечением, которое я использую (а не с тем, которое я разрабатываю), связано с é и è или даже ç на французском. Поместите их в каждую строку, которую вы используете в своих тестах. Используйте общее слово, которое вы используете все время, как
brèç©
Не забудьте также использовать акценты и специальные диаграммы в путях . Visual Studio.NET сама по-прежнему имеет много проблем с этим! Вы должны получить доступ к созданию таких каталогов и читать / писать из них в ваших тестах.
Если вы используете Visual Studio .NET, в свойствах проекта в разделе « Анализ кода» включите правила глобализации . Наиболее распространенные проблемы генерируют предупреждение при компиляции.
Наймите иностранца в своей команде.
источник