Я пытаюсь следовать этому руководству. JUnit 5: Как подтвердить выдачу исключения?
Я использую Java 10, IntelliJ 2018 и Junit 5.
Я создаю приложение-калькулятор, которое складывает 2 дроби. Он проверяет, имеет ли ввод 0 в знаменателе.
Когда я запускаю тест, сообщение об исключении распечатывается «Неопределенное математическое выражение», но моя среда разработки говорит
Expected java.lang.Throwable to be thrown, but nothing was thrown.
Я думаю, что есть какие-то проблемы с объемом моего кода? Я новичок, пожалуйста, будьте любезны. Я предоставил код и тест ниже:
public class Calculator {
public static int[] calculate (int firstNumerator, int firstDenominator, int secondNumerator, int secondDenominator) {
String exceptionMessage = "Undefined Math Expression";
int resultNumerator;
int resultDenominator;
int[] result = new int[2];
resultNumerator = (firstNumerator * secondDenominator) +
(secondNumerator * firstDenominator);
resultDenominator = firstDenominator * secondDenominator;
try {
if (resultDenominator == 0) {
throw (new Throwable(exceptionMessage));
} else {
result[0] = resultNumerator;
result[1] = resultDenominator;
}
} catch (Throwable e) {
System.out.println(e.getMessage());
}
return result;
}
}
Тест:
class CalculatorTest {
@Test
void denominatorContainsZero() {
assertThrows(Throwable.class, () -> {
Calculator.calculate(0,0,0,0);
});
}
}
Подробнее здесь: https://stackoverflow.com/questions/526 ... il-junit-5