ルール
JUnitを利用する場合、import文を記述する
テストクラスの中に複数のテストメソッドを入力
mainメソッドを記述しない
@Testをつける。
@Test: JUnitにテストメソッドであることを認識させる.
値の確認には、専用のメソッドを使用する
JUnitで利用できる主なメソッド
assertEquals(期待値,実際値)
equalsで比較して同じことを検証
assertSame(期待値,実際値)
等号で比較して同じインスタンスであることを検証
assertNull(実際値)
nullであることを検証
assetNotNull(実際値)
nullでないことを検証
fail()
例外が発生時した際に正しく動くか検証する
import static org.junit.Assert.assertThrows;
import static org.junit.Assert.fail;
import org.junit.jupiter.api.*;
public class BankTest {
// 正常系:"kei"をセットできるか
@Test
public void setName() {
Bank b = new Bank();
b.setName("Kei");
}
// 異常系: nullをセットしようとしたら例外が起きるべき
@Test
public void setNameWithNull() {
try {
Bank b = new Bank();
b.setName(null);
} catch (NullPointerException e) {
return;
}
fail();
}
// 異常系:2文字をセットしようとした場合、例外が起きるべき
@Test
public void throwExceptionWithTwoCharName() {
Bank b = new Bank();
assertThrows(IllegalArgumentException.class, () -> {
b.setName("Ai");
});
}
}
public class Bank {
private String name;
public String getName() {
return this.name;
}
public void setName(String newName) {
if(newName.length() <=3) {
throw new IllegalArgumentException("名前が不正です");
}
this.name = newName;
}
}
参考資料
スッキリわかるJava入門 実践編 第3版 (スッキリわかる入門シリーズ)