Error Handling
Exception: assertThrows で例外の契約を確かめる
失敗する入力に対して、期待する例外型をテストで固定します。
SourceDivision.java
Java 21
package examples.exceptionhandling;
public final class Division {
private Division() {}
public static int divide(int numerator, int denominator) {
return numerator / denominator;
}
}TestDivisionTest.java
Java 21
package examples.exceptionhandling;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import org.junit.jupiter.api.Test;
class DivisionTest {
@Test
void 割り切れる数なら整数の商を返す() {
assertEquals(5, Division.divide(10, 2));
}
@Test
void ゼロで割るとArithmeticExceptionが送出される() {
assertThrows(ArithmeticException.class, () -> Division.divide(10, 0));
}
}01Assertion
このテストで確認できること
- ゼロ以外の除数なら商を返す
- ゼロ除算では ArithmeticException を送出する
例外を握りつぶさず、起きるべき例外の型を assertThrows で明示します。
OBSERVED RESULT
expected exception:
ArithmeticException