mockitoのdoAnswerを使ったユニットテスト方法
今回は、業務にて処理内でコピーしたファイルを同じ処理内で削除する処理でIOExceptionを発生させ例外処理が行われるかをテストするユニットテストを作成した。
そこで使用したmockitoのdoAnswerを使いユニットテストを作成したため、mockitoのdoAnswerの使用方法についてサンプルと合わせて説明する。
mockitoのdoAnswerは以下のような記述で使用することができる。
今回は、業務にて処理内でコピーしたファイルを同じ処理内で削除する処理でIOExceptionを発生させ例外処理が行われるかをテストするユニットテストを作成した。
そこで使用したmockitoのdoAnswerを使いユニットテストを作成したため、mockitoのdoAnswerの使用方法についてサンプルと合わせて説明する。
mockitoのdoAnswerは以下のような記述で使用することができる。
今回は、モックを使用したコントローラクラスのテスト方法についてサンプルと合わせて説明する。
モックを利用したコントローラのテスト方法テスト対象のコントローラクラスが依存するクラスをモック化する場合のテスト方法を以下のサンプルで示す。
今回はモックを利用したサービスクラスの単体テストの実装方法についてサンプルと合わせて説明する。
モックを利用するサービスクラスのテスト方法テスト対象(サービスクラス)を@Injectアノテーションで呼び出す際のcontext.xmlのサンプルはモックを利用せず、DBにアクセスするサービスクラスのテスト方法に記載している。
サービスクラスの単体テストのサンプルを以下に示す。
以下のサンプルはリポジトリをモック化し、テスト対象のメソッドでモック化したメソッドが呼び出されていることとテスト対象の戻り値を検証している。
今回は単体テスト時にログの出力内容を検証をすることになったため、ログの出力内容の検証の方法で調べたことをサンプルと合わせてあげたいと思います。
出力されたログの検証方法出力されたログを検証する際、検証前に以下のサンプルのように値を設定する。
今回は単体テスト時にテスト対象にクラスが依存しているクラスが正しく使われているかなどを検証する際やテスト対象が呼び出している別クラスのメソッドの代替して処理を行う際などに使うmockの使用方法についてサンプルと合わせてあげたいと思います。
クラスのmock化方法(モックの初期化)テスト対象で呼び出しているメソッドのクラスや引数をモック化する際、mockメソッドを使用することでモック化することができる。
サンプルを以下に示す。
今回は業務で単体テストを作成中にFilesクラスのcreateDirectorysメソッドでIOExceptionが発生した際の処理をテストするためにモックを使用してIOExceptionを発生させる方法をサンプルと合わせてあげたいと思います。
モック化するクラスFilesクラスのcreateDirectoryメソッドでIOExceptionを発生させるために以下のクラスをモック化する。
今回業務で単体テスト中にStatic Methodをモック化し検証する必要があり調べたことをサンプルコードと合わせてあげたいと思います。
Static Methodのモック化方法まず、Staticなメソッドをモック化する際の前提条件としてmockito-inline:3.4.0
を使用している必要があります。
Staticなメソッドをモック化する際、MockitoのmockStatic
メソッドを使用してモック化することができます。
以下にサンプルを記述します。