【Java】VSCodeでJunitを使用してテストコードを作成する方法

Java

はじめに

今回は、Javaで「JUnit」について勉強したことを記載していきたいと思います。

 

JUnitとは

「Junit」とは、オープンソースで用意されているJavaのテスト用フレームワークのことです。JUnitを使用して作成したテストコードはテストを統一化・自動化することができます。

 

JUnitの使用方法

前提

この記事では「VSCode」+「Maven」を例に実行していきます。
Mavenプロジェクトの作成方法はこちらを参照してください。

【VSCode】Mavenプロジェクトのjarファイル作成方法について – SEもりのLog

 

pom.xmlの確認

前提の記事の通りにプロジェクトを作成している場合、自動的に設定されていますがない場合は、自身で追加してください。

~~~~~ 
 <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
~~~~~

 

テストコードの確認

こちらも前提の記事の通りにプロジェクトを作成している場合、自動的に設定されていますがない場合は、自身で追加してください。

package com.example;

import static org.junit.Assert.assertTrue;

import org.junit.Test;

/**
 * Unit test for simple App.
 */
public class AppTest 
{
    /**
     * Rigorous Test :-)
     */
    @Test
    public void shouldAnswerWithTrue()
    {
        assertTrue( true );
    }
}

 

テストの実行

テストの実行を行う場合はテストコードを右クリックし「テストの実行」を押します。

 

結果確認

assertTrueメソッドの結果を「true」「false」にそれぞれ変更して実施してみてください。テスト結果が「true」の場合OKとなり「false」の場合エラーとなるはずです。

 

自身で作成したメソッドでテストしてみる

テスト対象となるメソッドの用意

テスト対象になるメソッドを用意します。今回はブランクのみ「true」を返却するメソッドを用意します。

public class App 
{
    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );
    }

    // テスト対象のメソッド
    public static boolean isEmpty (String target) {
        
        if (target == null || !target.isEmpty()) {
            return false;
        } else {
            return true;
        }
    }
}

 

テストコード

テストコードを用意します。テスト対象のメソッドに対して3パターンの値を投げてテストを実施してみます。

public class AppTest 
{
    @Test
    public void isEmptyTest01()
    {
        assertTrue(App.isEmpty(""));
    }

    @Test
    public void isEmptyTest02()
    {
        assertFalse(App.isEmpty(null));
    }

    @Test
    public void isEmptyTest03()
    {
        assertFalse(App.isEmpty("test"));
    }
}

 

実行

すべての結果がOKになることを確認します。

 

検証メソッドの種類

テスト結果を検証すためのAssertメソッドは複数種類が用意されています。

メソッド名詳細
assertTrue期待値がTrueであることを検証
assertFalse期待値がFalseであることを検証
assertEquals期待値と結果がイコールであることを検証
assertNull期待値がNullであることを検証
assertNotNull期待値がNullでないことを検証
assertArrayEquals期待値の配列の結果がイコールであること
assertSame期待値のオブジェクトの結果がイコールであること
assertNotSame期待値のオブジェクトの結果がイコールではないこと

  

実施前処理/実施後処理

テストの実施前に処理を実施したい場合、アノテーションに「@Before」を付けたメソッドを用意します。
テスト実施後に処理を実施したい場合、アノテーションに「@After」を付けたメソッドを用意します。

 

    @Before
    public void init()
    {
        System.out.println("前処理");
    }

    @After
    public void down()
    {
        System.out.println("後処理");
    }

 

ドキュメント

【公式】
JUnit 5

 

最後に

Javaの環境構築は、この記事を参照してみてください。
【開発環境構築】VS CodeでJavaを使用するための環境構築を実施する – SEもりのLog (selifemorizo.com)

以上、ログになります。
これからも継続していきましょう!!

Javaサーバーサイド関連
おすすめIT本
良いコード/悪いコードで学ぶ設計入門

「ITエンジニア本大賞2023」技術書部門で大賞を受賞した本です。
・コードの可読性
・普段意識したほうが良いこと
・リファクタリング考え方
等、普段のコードを設計する際に意識することが書かれています。
コードのあるべき姿に迷ったら一度読んでみると良い本です。

仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん

Dockerって何?となったときに私が最初に読んだ本です。
Dockerがどんな仕組みで動いているのか、コマンドでは何を命令しているのかを理解できるように、イラストを多用して説明しています。

1冊ですべて身につくJavaScript入門講座

「ITエンジニア本大賞2024」技術書部門で大賞を受賞した本です。
私が次に読もうと思っている本なのでおすすめとして挙げておきたいと思います。

コメント

タイトルとURLをコピーしました