プログラミング Java

【JUnit5】テストコードの基本

投稿日:

概要

JUnit5でテストコードを書く基本について学ぶ。

テストの命名規則

テストクラス、テストメソッドの記述には一般的な慣例があります。
ここではそれらを紹介しますが、実際にはプロジェクト内でのコーディング規約やルールに従うようにして下さい。

クラス名

テストのクラス名は、テスト対象のクラス名に「Test」を付加した名称にする慣習があります。

(例)

テスト対象クラス Calculation.java
テストクラス CalculationTest.java

メソッド名

テストするメソッドの頭に「test」を付加する慣習があります。
また、テストするケースによって名称を具体的に示します。
メソッド名は日本語で記述することもできます。

(例)

テスト対象メソッド add(x, y)
テストメソッド testAdd()
testAdd_NegativeNumbers()
小数同士を加算する()

基本的な構成

テストコードは次の4つで構成されています。

事前準備(setup)

テストを実行可能な状態にするステップです。
特に行うことがなければ省略可能です。

実行(execute)

テストしたいメソッドを実行させます。
実行結果は「actual(実際の値)」という変数で保持することが慣習になっています。

検証(assert)

期待値(expected)と実行結果(actual)を検証するステップです。
大抵の場合、両方が一致することを検証します。

事後処理(tearDown)

後処理のステップです。
テストした後、余計なごみデータを削除したりします。
特に行うことがなければ省略可能です。

テストコードの例

基本的な構成をベースにテストクラスを作成しました。
HelloWorldクラスのsayメソッドの戻り値が、”Hello World!”であることを検証しています。

テスト対象クラス

テストクラス
・テストメソッドには「@Test」というアノテーションを付与します。
・テストの評価にはassertXXXメソッドを使用します。
 ここではassertEqualsという、2つの値が等価であることを検証するメソッドを使用しています。

(補足)tearDownでインスタンスにnullを代入していますがこれは冗長なコードです。
テストコードの4つの構成全てを記述する例としたためにあえてそのようにしています。

まとめ

  • クラス名は最後に「Test」を付けるのが慣例である。
  • メソッド名は最初に「test」を付けるのが慣例である。
    また、日本語にすることもできる。
  • テストコードは、事前準備・実行・検証・事後処理 の4つで構成されている。
  • テストしたいメソッドには@Testをつけること。
  • テストの評価にはassertXXXメソッドを使用する。

 
最後までお読み頂き、ありがとうございました!
ご意見・ご要望がありましたら、遠慮なくコメント下さい!
もし内容が良かったらランキング評価を頂けると励みになります(^^)

ランキング評価する

-プログラミング, Java
-,

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

AbstractFactoryパターンをenumで生成するメリット

AbstractFactoryパターンの説明には、実行時引数に文字列を渡したり、フラグでif-else判定する例をよく見かける。 しかし、どんなFactoryが生成可能を知らない担当者がFactory …

【Java】HashSet、LinkedHashSet、TreeSetの違い

概要 重複しないリストは、「Setに格納することで重複を除外してくれる」というのは多くの記事で紹介されています。 ここでは、Setに格納した後のデータの並び順も考慮したいという要件に対応するために、3 …

【Java】ディレクトリまたはファイルのみを再帰的に削除する

概要 再帰的にファイルやディレクトリを削除したいことがあります。 そんなときにサラッと書けるコードです。 環境 Java8以降 実装 指定したディレクトリを含めて全て削除 指定したディレクトリを含めて …

【Java入門】Supplierの使い方まとめ

概要 Supplierとは供給者という意味です。 その名の通り、引数を取らずに戻り値を受け取ります。   基本的な使い方 Supplier<T> getメソッドによってT型の結果を受け取り …

MySQL-タイムゾーン設定すると起動しなくなる原因と対処方法

MySQLのタイムゾーン設定をすると、XAMPPでMySQLが起動できなる原因と対処法です。   原因 原因は、MySQL(MariaDB)は最初から日本語設定が入ってないためです。 def …

SpringFramworkの良書

■おすすめ教材
Javaの基本を学んだ人が、次のステップとして読む本(中級者向け)

※SpringはJavaのFrameworkの1つです。
変更のしやすさ、保守性の高さが特徴です。