JUnitの使い方~テストクラスの作成と実行~


JUnitの設定を行う。

EclipseでJUnitの設定を行います。

  1. プロジェクトを右クリック
  2. ビルドパスを選択する
  3. ライブラリの追加を選択
  4. JUnitを選択

テストするためのクラスを作成する。

今回は、サンプルなので簡単なものです。
ずばり、下のようなクラスを作成しました。

package jp.zenryoku.sample;

/**
 * JUnitの作成から実行までのサンプルクラス
 * @author 作成者の名前
 *
 */
public class JUnitSample {
    /** 定数 */
    private static final String TITLE = "JUnitサンプル";
    /** フィールド変数 */
    private int age;

    public JUnitSample() {
        // 年齢を設定する
        age = 10; // とりあえずは10歳にする
    }

    /**
     * @return age
     */
    public int getAge() {
        return age;
    }

    /**
     * @param age セットする age
     */
    public void setAge(int age) {
        this.age = age;
    }

}
  • 定数として「TITLE」を定義
  • フィールド変数に年齢を定義
  • コンストラクタで年齢を10に設定
  • メソッドとして年齢のGetterSetterを作成

JUnitテストクラスを作成

テストクラスを作成するときは、(自分の常識内では)以下のように作成します。

  1. パッケージ名はテスト対象クラスと同じ
  2. テスト対象クラス+Testという名前にする

テストクラスを作成するときには、テスト対象クラスを定数として保持してしまうと楽なのでそのようにしています。状況によりstatic(静的)でやるべきか、そうしないべきかの判断は、使用したいアノテーションで判断するとよいと思います。

例:
1.テストクラスを起動するときに一度だけ起動するのを「@BeforeClass」アノテーションを使用するならば、static修飾子をつける必要がある。
2.テストケースの実行時に必ずコンストラクタを起動するのであれば、「@Before」を使用するとよい

\@Beforeを使用する場合

上に作成したテストケースを修正して、「@BeforeClass」アノテーションを使用しないパターンで実装してみます。

ここでコンストラクタに引数を追加したものを追加します。具体的には下のようなコードになります。

public JUnitSample(int age) {
    this.age = age;
}

そして、実行するテストに関しては、下のようになります。

package jp.zenryoku.sample;

import static org.junit.jupiter.api.Assertions.*;

import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

/**
 * JUnitテストクラス: パッケージ名が同じなのでインポートしなくてよい
 * @author 作成者の名前
 */
public class JUnitSampleTest {
    /** テスト対象クラス(テスト実行時には必ず1つなのでstaticでよい) */
    private JUnitSample target;

    /**
     * このテストクラスをインスタンス化するときの処理。
     * このメソッドは1度だけ動く
     */
    @BeforeClass
    public static void initClass() {
        // テスト対象クラスをインスタンス化
//      target = new JUnitSample();
    }

    /**
     * controll + spaceでインポートできる。
     * テストを実行する前の準備処理、テストケースが動くたびに動く
     */
    @Before
    public void initTest() {
//      // 15歳に設定しなおす。
//      target.setAge(15);
        target = new JUnitSample(12);
    }

    /**
     * テストケース1:年齢(age)が15歳に設定されているか確認する。
     */
    @Test
    public void test01() {
        // 警告が出るのでstaticインポートに変更する。
        assertEquals(12, target.getAge());
    }
}

そして、コンストラクタ以外でも年齢の設定を変更できることを確認するテストケースを追加します。

/**
 * テストケース2:年齢を5歳に設定しなおしたときのテスト
 */
@Test
public void test02() {
    target.setAge(5);
    assertEquals(5, target.getAge());
}

テスト作成の方法

関連ページ一覧

Eclipseセットアップ(Windows版)

Eclipse セットアップ(MAC版)

  1. Java Install Eclipse〜開発ツールのインストール〜
  2. TensorFlow C++環境〜EclipseCDTをインストール〜
  3. Setup OpenGL with JavaJOGLを使う準備 for Eclipse
  4. Eclipse Meven 開発手順〜プロジェクトの作成〜
  5. Java OpenCV 環境セットアップ(on Mac)
  6. Eclipse SceneBuilderを追加する
  7. JavaFX SceneBuilder EclipseSceneBuilder連携~

Java Basic一覧

  1. Java Basic Level 1 〜Hello Java〜
  2. Java Basic Level2 〜Arithmetic Calculate〜
  3. Java Basic Level3 〜About String class〜
  4. Java Basic Level 4〜Boolean〜
  5. Java Basic Level 5〜If Statement〜
  6. Java Basic Summary from Level1 to 5
  7. Java Basic Level 6 〜Traning of If statement〜
  8. Java Basic Level8 〜How to use for statement〜
  9. Java Basic Level 8.5 〜Array〜
  10. Java Basic Level 9〜Training of for statement〜
  11. Java Basic Level 10 〜While statement 〜
  12. Java Basic Swing〜オブジェクト指向〜
  13. Java Basic Swing Level 2〜オブジェクト指向2〜
  14. サンプル実装〜コンソールゲーム〜
  15. Java Basic インターフェース・抽象クラスの作り方
  16. Java Basic クラスとは〜Step2_1〜
  17. Java Basic JUnit 〜テストスイートの作り方〜

Git関連

  1. Java Git clone in Eclipse 〜サンプルの取得〜
  2. Eclipse Gitリポジトリの取得 GitからソースをPullしよう〜
  3. IntelliJ IDEA GitGitリポジトリからクローン〜

JavaFX関連ページ

  1. Eclipse SceneBuilderを追加する
  2. JavaFX SceneBuilder 〜EclipseとSceneBuilder連携~
  3. JavaFX SceneBuilder〜ボタンにメソッドを割り当てるワンポイント〜
  4. Java プロコンゲーム 〜見た目の作成(SceneBuilderの使用)〜

ステップアップ関連ページ一覧

  1. Java 初めてでも大丈夫〜ステップアッププログラミングのススメ〜
  2. ステップアッププログラミング〜Java FxでHelloWorld解説〜
  3. Java StepUpPrograming〜JavaFX で四則計算〜
  4. Java StepUpPrograming〜JavaFXで画面切り替えを作る1〜
  5. Java StepUpPrograming〜JavaFXで画面切り替え2ボタン作成〜
  6. Java StepUpPrograming〜JavaFXで画面切り替え3アクション〜
  7. Java StepUpPrograming〜JavaFXで画面切り替え4Pane切り替え〜
  8. Java StepUpPrograming〜JavaFXで画面切り替え5WebEngine

JavaFX + ND4Jで機械学習準備

  1. JavaFX + ND4J〜数学への挑戦1:ND4Jのインストール〜
  2. JavaFX + ND4J〜数学への挑戦2: 行列の計算〜
  3. Java + ND4J 〜数学への挑戦3: ベクトル(配列)の作成方法〜

オブジェクト指向関連ページ

  1. [オブジェクト指向の概念1〜OracleDocのチュートリアル1〜](https://zenryokuservice.com/wp/2019/10/301. /%e3%82%aa%e3%83%96%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e6%8c%87%e5%90%91%e3%81%ae%e6%a6%82%e5%bf%b5-%e3%80%9coracledoc%e3%81%ae%e3%83%81%e3%83%a5%e3%83%bc%e3%83%88%e3%83%aa%e3%82%a2%e3%83%ab%ef%bc%91/)
  2. オブジェクト指向の概念2〜クラスとは〜

投稿者:

takunoji

音響、イベント会場設営業界からIT業界へ転身。現在はJava屋としてサラリーマンをやっている。自称ガテン系プログラマー(笑) Javaプログラミングを布教したい、ラスパイとJavaの相性が良いことに気が付く。 Spring framework, Struts, Seaser, Hibernate, Playframework, JavaEE6, JavaEE7などの現場経験あり。 SQL, VBA, PL/SQL, コマンドプロント, Shellなどもやります。

コメントを残す