我有一个开源库,它有大量的单元测试,可以比较字符串形式的数字。
这些测试在en-GB
,en-US
和其他文化中正常传递,其中数字通常以1,234.00
的形式编写。
然而,在德国和法国等文化中,这些值的格式不同,测试失败。
如何强制jUnit测试以en-GB
运行?
编辑 this kind of thing在NUnit中可用。
答案 0 :(得分:4)
我不确定它是所有JVM的标准,但是在Windows上使用Oracle的JVM,您可以使用user.language和user.country系统属性在启动JVM时设置语言环境:
java -Duser.language=en -Duser.country=GB ...
当然,您也可以使用
在Java中设置默认语言环境Locale.setDefault(new Locale("en", "GB"));
请注意,Double.toString
与语言环境无关。
答案 1 :(得分:1)
如何启动jUnit?
传递适当的语言属性将更多地取决于您的环境而不是jUnit本身。
或者(我认为这是一个更好的解决方案),你可以比较值而不是字符串:
assertEquals(12.3, Double.valueOf(aDoubleString));
assertEquals(Double.toString(12.3), aDoubleString);
而不是
assertEquals("12.3", aDoubleString)
答案 2 :(得分:0)