【初心者向け】Javaのテストってなに?〜JUnit5で学ぶテストの基本〜

  •  
 
suu に投稿

■ テストってなに?なぜ必要?

テストとは簡単にいうと「このプログラム、ちゃんと正しく動いてるかな?」を確認する作業です。

  • 入力に対して、正しい結果が返ってくるか
  • エラーが起きてもちゃんと処理できるか
  • プログラム同士がうまく連携できているか

…など、いろんな視点からチェックします。

◆ テストの種類って?

実際の開発では、いくつかの段階に分けてテストを行います。

テストの種類

内容

単体テスト

小さな部品(関数やクラス)が正しく動くか

統合テスト

複数の部品をつなげたときにうまく動くか

システムテスト

全体として期待通りに動作するか

 

まずは**「単体テスト」**から始めるのが一般的です。これがしっかりしていると、あとで起きるバグを減らすことができます。

■ 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つの関数が正しく動くか」を確かめるところから始めてみましょう。テストを書くことで、自分のコードに自信が持てるようになります!

コメントを追加

プレーンテキスト

  • HTMLタグは利用できません。
  • 行と段落は自動的に折り返されます。
  • ウェブページのアドレスとメールアドレスは自動的にリンクに変換されます。
CAPTCHA
この質問はあなたが人間の訪問者であるかどうかをテストし、自動化されたスパム送信を防ぐためのものです。