プログラミング 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


関連記事

【Java】Enumを使って変更に強いコーディングをする!

概要 仕事でコード値の判定が色んなところに散らばってしまった後に、コード値の定義を変更しなければいけなくなった状況が起こりました。 Enumで定義していれば変更箇所はEnum定義だけでよかったなぁ~と …

オブジェクト指向がわかるようになるためにする3つのこと

オブジェクト指向がいまいちわからない人向けに、 オブジェクト指向でプログラミングできるようになるまでのステップを以下にまとめました。   Javaでプログラミングする Javaはオブジェクト …

【SpringBoot入門】#8~ 検索機能の実装

概要 ・検索フォームから条件を指定して検索すると、条件に一致する結果が一覧画面に表示される。 ・検索条件は複合的に指定できることとする。 ・検索結果は適切にフォーマットされることとする。  (日付はy …

プログラミングスキルを向上させる3ステップ

プログラミングスキルを向上させるための3ステップです。 私自身が実践していることであり、向上を実感している方法です。 写経 本をベースに写経します。 写し書きをして動いたらOKではなく、以下のような問 …

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

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

記事を探す

SpringFramworkの良書

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

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