AOPのテストってどうするんだぁ
AOPでは、単体時には「完璧」に動作したクラスであっても、このコードはアスペクトによって変更されうるので、結合時にはまったく異なる動作をする場合がある。当然だはなぁ。ということは、クラスのコードを見ただけでクラスについて判断できない。つまり、クラスのコードは、あるアスペクトによって拡張されていたり、置換されていたりするわけですよね。ということは、そのクラスに影響する、あらゆるアスペクトのコードをテストしなければならないってこと???
- インターセプタは、自分自身の単体テストを行う。
- アスペクトが組み込まれるクラスは、アスペクトを組み込まない状態で単体テストを行う。
- 結合テストでは、アスペクトがきちんと組み込まれていることを検証する。
- インターセプタの細かいテストは単体で行われているはずなので、結合テストでのアスペクトの検証は正常ケース(そつうレベル)のみ。
で良いんじゃないかと思ってます。
横断的な関心がコアから分離されたので、テストも同じように分離し、
結合テストでアスペクトの設定があってるかの検証は行うという考えです。