我发现在调用 factoryBean.getObject() 之前对 bean 进行后处理是不可能的。'resultingBean' 是一些在开始时初始化的 bean 的依赖项,因此它首先被实例化。请参阅在“MyFactoryBean”中构造“resultingBean”之前,我需要“myBeanPostProcessor”来处理“myBean”。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"/>
知道如何处理吗?我故意选择 BeanPostProcessor 是因为此要求应处理在 junit @Before 方法之前设置 mocito 模拟...问题是在 @Before 方法中设置这些模拟为时已晚,因为您需要在上下文时使用它们初始化。
没有很多方法可以做到这一点,包括 ExecutionListeners、ContextLoaders、BeanFactoryPostprocessor、Runner 等等。
我正在使用springockito来模拟我的豆子。
这是完美的弹簧测试框架的一个小缺点。