java - 为什么Eclipse和maven中的double比较不同?

标签 java eclipse maven double junit4

我有一个程序,我正在从文件加载属性。当代码中的配置文件中不存在属性时,我将属性设置为默认值。

在 JUnit 测试中,我正在测试如果未设置属性,则该值是默认值。

我的属性是一些以毫秒为单位的阈值,它是字符串形式的,然后转换为 double 和秒。默认值为 1000,因此 0.001 * 1000 = 1.0。

在我的代码中,我基本上有这个(我使用的是 JUnit 4.8):

double defaultThreshold = 1.0;
double threshold = getThreshold();
Assert.assertEquals(0, Double.compare(defaultThreshold, threshold));

我认为 java 版本可能有问题,但我在 Eclipse 中使用 Java 1.6、1.7 和 1.8 进行了尝试,并且在 mvn 中所有通过都正常,我使用 java 1.7.0_71,但在与以下内容的比较中失败:

 expected:<0> but was:<1>

注意:如果两个数字相等,Double.compare 返回 0。 https://www.tutorialspoint.com/java/lang/double_compare.htm 如果 d1 在数值上等于 d2,则此方法返回值 0;如果 d1 在数值上小于 d2,则小于 0 的值;如果 d1 在数值上大于 d2,则为大于 0 的值。

最佳答案

问题不是比较 double ,而是控制台 maven 和 eclipse 中 JUnit 的执行顺序不同:/ 问题的原因是,在一种情况下,先前的测试影响了其他测试,而在另一种情况下,并不是因为顺序不同,我希望顺序相同,但事实并非如此。

关于java - 为什么Eclipse和maven中的double比较不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51170926/

相关文章:

java - webstart-maven-插件 : where do the $jnlpspec and $j2seVersion template variables come from?

java - 多个 Maven 模块中的 log4j.properties?

java - web.xml servlet 映射无限循环

java - 为什么我的项目无法编译?

java - 无法从 SpringSource Tool Suite 2.8.1 热部署到 GlassFish 3.1

java - 如何为 JAR 和调试正确引用资源文件?

java - 从传递依赖导入类

java - 非贪婪匹配的正则表达式

java - 将 ArrayList<NameValuePair> 传递给 ASyncTask 并更新值

java - "Etat HTTP 500"错误的原因是什么?怎么解决呢?