Ява не выкидывает арифметическое исключение
У меня есть этот код 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);
}
затем сравнивая