BullよりElk

洋服と食をこよなく愛するWebプログラマ。

AssertJで流れるようなインターフェースでアサーションを書こう #1

みなさんユニットテスト書いてますか?アサーションライブラリは何を使ってますか?私は、Assert Jが好きで使ってます。

AssertJは、Javaアサーションライブラリで、主にAssertJ CoreとAssertJ SwingとAssertJ DBがあります。
今回は、AssertJ Coreについて書きます。第1回は、概要と導入手順です。
AssertJ Coreは、流れるようなインターフェースでアサーションを書くことができるJavaライブラリで、テストコードを読みやすく改善し、簡単にメンテナンスしやすくすることが主な目的です。
メソッドチェーンで複数の検証を一度に書くことができます。また、JDKの標準タイプのアサーションを提供していて、JUnitTestNGで使うことができます。

バージョン

バージョンは、下の表のようになっています。(2017/10/19時点)3系の大きな特徴は、Project Lambdaを使用した検証ができることです。また、OptionalやDate and Time APIの各クラスの検証もできます。
これらの機能に加えて、2系のすべての機能が利用できます。

Javaバージョン 初期リリース 最新
3系 Java8以上 2015/04/06(3.0.0) 2017/05/21(3.8.0)
2系 Java7以上 2015/03/07(2.0.0) 2017/05/21(2.8.0)
1系 Java6以上 2013/03/26(1.0.0) 2015/01/02(1.7.1)

類似ライブラリ

AssertJ Android

AssertJを拡張したAndroid用のアサーションライブラリです。
square.github.io

Assert Py

AssertJに影響を受けて作られてたPython用のアサーションライブラリです。
github.com

導入手順

依存関係の追加

Spring Boot(>=1.4)を使う場合

その他の場合

  • Gradle

Spring Boot(>=1.4)を使う場合

その他の場合

Spring Bootを使う場合、spring-boot-starter-testには、AssertJが含まれています。しかし、デフォルトで2.6.0が入っているので3.8.0を使う場合は、バージョン指定が必要です。

依存ライブラリがないので、導入がしやすいです。
次回は、実際にどういう風にアサーションが書けるかについてです。