我發現不可能在factoryBean.getObject()被調用之前後處理一個bean。 'endingBean'是一些在開始時初始化的bean的依賴關係,因此它首先被實例化。在'結果結束'在'MyFactoryBean'中構造之前,請參閱我需要'myBeanPostProcessor'來處理'myBean'。 lazy-init和depends-on都沒有幫助。無論如何,'MyFactoryBean.getObject()'總是被首先調用。如何在factoryBean返回一個實例之前處理一個bean?
<bean id="myBean" class="example.MyBean" />
<bean id="myBeanPostProcessor" class="example.MyBeanPostProcessor" />
<bean id="resultingBean" class="example.MyFactoryBean" depends-on="myBean"/>
任何想法如何處理這個?我故意選擇了BeanPostProcessor,因爲這個需求應該處理在junit @Before方法之前設置mocito mocks ......問題是,在@Before方法中設置這些mock太遲了,因爲您需要在上下文時使用它們初始化。
如何做到這一點的方法並不多,包括ExecutionListeners,ContextLoaders,BeanFactoryPostprocessor,Runner等等。
我使用springockito嘲笑我的豆子。
這是否則完美的彈簧測試框架的一個小缺點。
你不能在MyBean的構造函數中進行處理嗎? 還是在setter方法中? – Link19
我不能,myBean實際上是嘲笑的主題。我試圖嘲笑的bean。在調用factoryBean.getObject()時,'myBean'已經在beanFactory中。 – lisak
如果我需要嘲笑任何東西,我傾向於指出並笑。 – Link19