-2

我有这个Java代码:

public class Calc {
    public int quotient(int a, int b){
        return a/b;
    }
}

和此方法的 TestNG 单元测试:

@Test ()
public void testingMethod3() {
    Assert.assertEquals(0, calc.quotient(5,0));
}

在我的工作计算机上,我成功获得

java.lang.ArithmeticException: / 由零

消息,正如预期的那样。

但是当我的同事在家用电脑上运行这个测试时,提到的异常没有抛出并且测试通过。

这种魔法是怎么发生的?

PS 环境操作系统:Windows 10 TestNG 版本:6.13.1 Java 版本:8(不知道确切的构建版本)

PPS 删除目标文件夹和重建项目是非常有用的解决方案。似乎 IDE 兑现了旧项目源,并且在代码更改后没有刷新它们。

4

1 回答 1

1

过去,我经历过像你这样的事情。因为不同的 JDK 编译环境和/或 JRE 运行时环境。并且需要检查不同版本的TestNG。

通过添加几行代码来打印 Java 属性来检查。

Properties p = System.getProperties();
Enumeration keys = p.keys();
while (keys.hasMoreElements()) {
    String key = (String)keys.nextElement();
    String value = (String)p.get(key);
    System.out.println(key + ": " + value);
}

然后比较

于 2018-02-16T12:27:39.377 回答