これまでCDIを使った単体テストについて何回か紹介しましたが、そこでは主にインジェクションの対象を切り替える方法について書いてきました。しかし、CDI(Contexts and Dependency Injection)のインジェクションは、単なるインジェクションではなく、インジェクトされるBeanはコンテキストが管理しているのが特徴です。CDIでは、コンテキストの寿命が尽きれば、それにバインドしたBeanも解放されます。そこで、テストケースとしてコンテキストの開始・停止をすることでBeanのライフサイクルを制御をしたいことがあると思います。今回は、DeltaSpikeのCDITestRunnerを使ったときのコンテキストの制御について紹介します。 ContextControl CDITestRunnerを使ったテストコードでは、ContextControlを使ってApplication/