更改junit测试的默认语言环境

use*_*784 12 java junit internationalization

如何更改JUnit测试的默认语言环境.当前的语言环境是en.我想测试es_ES.我试过了:

System.setProperty("locale", "es_ES");
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用.

rge*_*man 27

您可以设置默认Locale使用Locale.setDefault.

设置此Java虚拟机实例的缺省语言环境.这不会影响主机区域设置.

Locale.setDefault(new Locale("es", "ES"));
Run Code Online (Sandbox Code Playgroud)

使用以下资源文件进行测试:

这是我的主要功能,没有更改我的默认语言环境(en_US):

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

输出:

Yes
Run Code Online (Sandbox Code Playgroud)

这是我的主要功能,更改了您的测试区域设置(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"));
}
Run Code Online (Sandbox Code Playgroud)

输出:

Run Code Online (Sandbox Code Playgroud)

应用于JUnit测试用例时,这应该有效.

  • 问题是关于 JUnit 的,您需要将更改范围限制在单个测试函数,而不仅仅是全局更改。 (3认同)