Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
25
Help us understand the problem. What is going on with this article?
@DisneyAladdin

【Java】Unit Testを行う

はじめに

統合開発環境であるIntelliJ IDEAJUnit Testを行ったときの手順をまとめました.
intellij-idea-java-ide_orig.jpg

JUnit Testは,作ったプログラムがどんな場合でもきちんと動くかどうかを検証するテストのことです.

例えば,「1〜9までの好きな数字を入力してください!」という内容でint型の変数用意して標準入力待ってても,ユーザが文字列(String型)入力しようものならエラー出ますよね!

でもコンパイルした時にはエラーはでなかった...なんて経験ありますよね

入力データによってどうなるかわからないようなコードを前もってテストしておこう!というのがJUnit Testなわけです.

手順

1. Junit testしたいJavaファイルを用意

Screen Shot 2019-05-09 at 11.19.13.png
今回はこのMain.javaPersonクラスに対してJUnit Testを行います.

2. テスト用のディレクトリを作成

Screen Shot 2019-05-09 at 9.56.23.png
現在作業中のプロジェクトファイル.imlファイルを選択した状態で右クリック

New --> Directory

Screen Shot 2019-05-09 at 9.56.44.png

この例ではディレクトリ名をTestとします

3. 作ったディレクトリをTests用に設定

 File-->Project Structure

Screen Shot 2019-05-09 at 9.57.05.png

 Modules-->Test(さっき作ったテスト用ディレクトリ)-->右クリック-->Tests

Screen Shot 2019-05-09 at 9.57.24.png

Testsディレクトリに設定されると下図左のようにテスト用ディレクトリの色が緑色に変わります.
Screen Shot 2019-05-09 at 9.58.06.png

4. テスト用クラスを作成

テストしたいクラス(この例ではPerson)にカーソルを置いた状態でオレンジの電球マークを選択

Create Test
Screen Shot 2019-05-09 at 11.45.33.png

 Testing library --> JUnit4(またはJUnit5)を選択

Screen Shot 2019-05-09 at 11.46.05.png

すると,作ったテスト用ディレクトリの中に[選んだクラス]Testと書かれたテスト用クラスが生成されます

この例ではPersonTestクラスが生成されます.

5. テスト用クラスを編集

Screen Shot 2019-05-09 at 10.17.10.png

このように編集しました.

assertEquals(期待される結果 , クラス.関数)

のように記述します.

つまり,この例ではPerson.name()の返り値として文字列Shutoを期待してることになります.

6. 実行

Screen Shot 2019-05-09 at 10.18.26.png
Screen Shot 2019-05-09 at 10.23.30.png

Run 'PersonTest'

Screen Shot 2019-05-09 at 13.43.23.png

期待された結果になれば,緑色のラインが一瞬出てTests passedが出てきます

では,あえて期待される結果をShuto--->helloに変えて再テストしてみます

Screen Shot 2019-05-09 at 10.27.02.png

期待してた結果と実際に返ってきた結果が異なったのでTests fialedとなりました(わざとさせたというべきか).

 Expected: 期待される値
 Actual:実際に返ってきた値

このようにしてJUnit Testは行われます.

ちなみに,下図のように,既にテストが成功した部分は緑色に,まだテストしてなかったり失敗した部分は赤色で示されます.

Screen Shot 2019-05-09 at 14.25.41.png

こんな感じで作ったコードをテストして逐次回改善してく流れになるかと思います.

おわりに

今回は作ったJavaクラスに対してJUnit Testを行いました.

一度やり方覚えてしまえば非常に簡単にテストできるかと思います.

読んでいただきありがとうございました.

25
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
DisneyAladdin
Pythonが大好物です.

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
25
Help us understand the problem. What is going on with this article?