factoryBean.getObject()が呼び出される前にBeanを後処理することは不可能です。'resultingBean'は、最初に初期化されるBeanの依存関係であるため、最初にインスタンス化されます。'myFactoryBean'で'resultingBean'が構築される前に、'myBean'で何かを行うには'myBeanPostProcessor'が必要になることを参照してください。lazy-initもdepends-onも役に立ちません。いずれにせよ、「MyFactoryBean.getObject()」が常に最初に呼び出されます。
<bean id="myBean" class="example.MyBean" />
<bean id="myBeanPostProcessor" class="example.MyBeanPostProcessor" />
<bean id="resultingBean" class="example.MyFactoryBean" depends-on="myBean"/>
これに対処する方法はありますか?この要件はjunit@Beforeメソッドの前にモックモックを設定する必要があるため、意図的にBeanPostProcessorを選択しました...問題は、コンテキスト時にそれらを操作する必要があるため、@Beforeメソッドでこれらのモックを設定するのが遅すぎることです。初期化。
ExecutionListeners、ContextLoaders、BeanFactoryPostprocessor、Runnerなど、これを行う方法は多くありません。
私はその場で豆をあざけるspringockitoを使用しています。
これは、他の点では完璧なスプリングテストフレームワークの小さな欠点です。