ArchUnitって何モノ?
はじめに
内輪でArchUnitに対する関心が高まっているのですが、これが何ものなのかちょっとわかりにくいので、自分のためにもメモ。
何モノなのか
「アーキテクチャをテストするモノ」です*1。
ここでいうアーキテクチャは、パッケージ間やクラス間の依存関係を主に指しています。
4. What to CheckのUML*2で記載されているテスト内容が、主に想定しているターゲットです。
このようなものについて、リフレクションAPIを使ってテストするよりも短い記述でテストできます。
主に想定しているターゲット以外も、リフレクションでチェック出来るものであればテスト可能です。
ただし、主なターゲットをテストする時ほどテストコードは短くならないかもしれません。
*1:Why test your architecture? - ArchUnitに「Why test your architecture?」という見出しがあるので、察しがつきます