Ява не выкидывает арифметическое исключение

У меня есть этот код 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 обналичил старые исходные коды проекта и не сбрасывал их после изменений в коде.

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);
}

затем сравнивая

Другие вопросы по тегам