2014-12-05 9 views
7

Как изменить языковой стандарт по умолчанию для теста JUnit. Текущий язык - ru. Я хочу проверить для es_ES. Я пробовал:изменить стандартную локаль для теста junit

System.setProperty("locale", "es_ES"); 

Но это не похоже на работу.

+0

Да, и? Какой код вы используете, зависящий от локали? – fge

+0

Я не понял, что вы имели в виду. У меня есть несколько сообщений об исключениях, которые необходимо проверить. Я создал отдельный файл ресурсов, однако он не связан. – user3453784

+0

Хмвелл, может быть, в этом случае вы хотите посмотреть [этот проект] (https://github.com/fge/msg-simple) ; он позволяет легко получать локализованные сообщения – fge

ответ

16

Вы можете установить по умолчанию Locale с помощью Locale.setDefault.

Устанавливает языковой стандарт по умолчанию для этого экземпляра виртуальной машины Java. Это не влияет на локализацию хоста.

Locale.setDefault(new Locale("es", "ES")); 

Тестирование со следующими файлами ресурсов:

  • test.properties

    message=Yes 
    
  • test_es_ES.properties

    message=Sí 
    

Вот моя основная функция, без изменения моих региональных настроек по умолчанию (en_US):

public static void main(String[] args) 
{ 
    ResourceBundle test = ResourceBundle.getBundle("test"); 
    System.out.println(test.getString("message")); 
} 

Выход:

Yes 

Вот моя главная функция, с изменением в тестовой местность (es_ES):

public static void main(String[] args) 
{ 
    Locale.setDefault(new Locale("es", "ES")); 
    ResourceBundle test = ResourceBundle.getBundle("test"); 
    System.out.println(test.getString("message")); 
} 

Выход:

Это должно работать при применении к тестовому корпусу JUnit.

Смежные вопросы