Jacksonを利用したcsvファイルへの出力方法
概要
今回は、業務にてcsvファイルにデータを書き込む処理を作成することになり、その際に学習したJacksonを利用したcsvファイルへの出力方法についてサンプルと合わせて説明する。
csvファイルの出力方法
csvファイルへの出力方法はObjectWritet.writerValue()を用いてcsvファイルにレコードを出力する。サンプルを以下に示す。
今回は、業務にてcsvファイルにデータを書き込む処理を作成することになり、その際に学習したJacksonを利用したcsvファイルへの出力方法についてサンプルと合わせて説明する。
csvファイルへの出力方法はObjectWritet.writerValue()を用いてcsvファイルにレコードを出力する。サンプルを以下に示す。
今回は単体テスト実施時にバリデーションの検証を行ったため、方法について調べたことをサンプルと合わせて説明する。
バリデーションが付与さてれているbean(form)クラスの入力チェックを行う。
バリデーションが付与さてれているbeanクラスを以下に示す。
@Data
class TestBean {
@NotNull(message = "not null!!")
private String name;
}
入力チェックを検証を行う方法を以下のサンプルに示す。
今回はモックを利用したサービスクラスの単体テストの実装方法についてサンプルと合わせて説明する。
テスト対象(サービスクラス)を@Injectアノテーションで呼び出す際のcontext.xmlのサンプルはモックを利用せず、DBにアクセスするサービスクラスのテスト方法に記載している。
サービスクラスの単体テストのサンプルを以下に示す。
以下のサンプルはリポジトリをモック化し、テスト対象のメソッドでモック化したメソッドが呼び出されていることとテスト対象の戻り値を検証している。
今回は依存クラスを利用したサービスクラスの単体テストの実装方法についてサンプルと合わせて説明する。
テスト対象(サービスクラス)を@Inject
アノテーションで呼び出す際以下のサンプルのようにcontext.xmlに記述する。
また、リポジトリを依存関係を使って呼び出す方法はリポジトリの単体テスト方法 に記載している。
今回は、業務でリポジトリの単体テストを実施したため、テスト方法や設定などをサンプルと合わせてあげたいと思います。
context.xmlにて<mybatis:scan>
を用いてリポジトリのパスをしていすることでテスト時に@Inject
で依存関係の設定する。
以下のサンプルをcontext.xmlに追加する。
今回は単体テスト時にログの出力内容を検証をすることになったため、ログの出力内容の検証の方法で調べたことをサンプルと合わせてあげたいと思います。
出力されたログを検証する際、検証前に以下のサンプルのように値を設定する。
今回は単体テスト時にテスト対象にクラスが依存しているクラスが正しく使われているかなどを検証する際やテスト対象が呼び出している別クラスのメソッドの代替して処理を行う際などに使うmockの使用方法についてサンプルと合わせてあげたいと思います。
テスト対象で呼び出しているメソッドのクラスや引数をモック化する際、mockメソッドを使用することでモック化することができる。
サンプルを以下に示す。
業務でエラーの出力をスタックトレースで行ってい処理を検証することになったため標準エラー出力先を変更し検証をいたしました。 今回はサンプルと合わせて標準出力先の変更方法についてあげたいと思います。
標準エラー出力先の変更するためSystem.setErr()
で標準エラー出力先を任意のPrintStream
に変更ができる。
PrintStream
はbyte[]
をもとに作成できる。
サンプルを以下に記述する。
今回は業務で単体テストを作成中にFilesクラスのcreateDirectorysメソッドでIOExceptionが発生した際の処理をテストするためにモックを使用してIOExceptionを発生させる方法をサンプルと合わせてあげたいと思います。
FilesクラスのcreateDirectoryメソッドでIOExceptionを発生させるために以下のクラスをモック化する。
今回業務で単体テスト中にStatic Methodをモック化し検証する必要があり調べたことをサンプルコードと合わせてあげたいと思います。
まず、Staticなメソッドをモック化する際の前提条件としてmockito-inline:3.4.0
を使用している必要があります。
Staticなメソッドをモック化する際、MockitoのmockStatic
メソッドを使用してモック化することができます。
以下にサンプルを記述します。