■ テストってなに?なぜ必要?
テストとは簡単にいうと「このプログラム、ちゃんと正しく動いてるかな?」を確認する作業です。
- 入力に対して、正しい結果が返ってくるか
- エラーが起きてもちゃんと処理できるか
- プログラム同士がうまく連携できているか
…など、いろんな視点からチェックします。
◆ テストの種類って?
実際の開発では、いくつかの段階に分けてテストを行います。
テストの種類
内容
単体テスト
小さな部品(関数やクラス)が正しく動くか
統合テスト
複数の部品をつなげたときにうまく動くか
システムテスト
全体として期待通りに動作するか
まずは**「単体テスト」**から始めるのが一般的です。これがしっかりしていると、あとで起きるバグを減らすことができます。
■ JUnit5で単体テストを書いてみよう!
Javaの世界で広く使われているテストツールが「JUnit(じぇーゆーにっと)」です。今はJUnit5が主流です。
JUnitを使うと、コードの中に「テスト用のコード」を書くことができます。
◆ 例:計算クラスのテスト
java
// テストしたいクラス public class Calculator { public int add(int a, int b) { return a + b; } }
この add
メソッドが正しく動くかを、JUnitでテストしてみます。
java
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
public class CalculatorTest {
@Test void testAdd() {
Calculator calc = new Calculator();
int result = calc.add(2, 3);
assertEquals(5, result);
// 2 + 3 = 5 ならOK!
}
}
上のコードでは「2と3を足した結果が5になること」をチェックしています。もし違う結果が出たら、テストが失敗として表示されます。
◆ よく使うアノテーション(記号)
@Test
:これは「テストメソッドですよ」とJUnitに伝える目印assertEquals(期待値, 実際の値)
:結果が同じか確認するための命令
■ どんなケースをテストすればいいの?
ただ「普通に動いた」だけでOKにしてしまうと、思わぬ場面でバグが起こります。そこで、いくつかのテスト技法を使って、色々なケースを試してみるのがポイントです。
◆ 初心者向けテスト技法
- 同値分割:「似たような入力」をグループにして代表をテスト(例:0〜100点なら50を試す)
- 境界値分析:ギリギリの値を試す(例:99点、100点、101点)
- 異常系のテスト:変な値(マイナスやnull)を入れたらどうなるか
こうした工夫で、見つけにくいバグもチェックできます。
■ 「テストダブル」ってなに?
テスト中、外部のデータベースやネットワークを使うと時間がかかったり失敗したりします。そこで使うのが「テストダブル」と呼ばれるニセモノの部品です。
たとえば…
- スタブ:決まったデータを返すだけの部品
- モック:ちゃんと呼び出されたかを記録する部品
本物の代わりにテスト用の部品を差し替えて使うことで、スムーズにテストができます。
■ 依存性注入(DI)とは?
難しい言葉ですが、「必要な部品を外から渡して使う」ことです。
普通に書くと、部品の中で他の部品を自分で作ってしまうことがあります。でも、それだと差し替えができません。
java
// 悪い例 public class UserService { private UserRepository repo = new UserRepository(); }
テストしやすくするには、こう書きます。
java
// 良い例(依存性注入)
public class UserService {
private UserRepository repo;
public UserService(UserRepository repo) { t
his.repo = repo;
}
}
こうすると、テストのときに「ニセモノのrepo(モック)」を渡せます。
■ まとめ:テストは「守り」と「安心」
テストは、ただの作業ではなく**「コードの安全ネット」**のようなものです。
- 変更してもバグが出てないか確認できる
- 複数人の開発でも安心できる
- バグの発見が早く、直すのもラクになる
初心者のうちは「テストって難しそう」と感じるかもしれません。でも、JUnit5を使ってみると、意外とシンプルに始められます。
まずは「1つの関数が正しく動くか」を確かめるところから始めてみましょう。テストを書くことで、自分のコードに自信が持てるようになります!
- 閲覧数 17
コメントを追加