是否可以使用 'MethodInvokingFactoryBean' 来创建模拟 bean?

Is it possible to use 'MethodInvokingFactoryBean' to create a mock bean?

我们可以使用 Mockito.mock(SomeCls.class) 创建模拟,但我们如何使用 MethodInvokingFactoryBean 在应用程序上下文 xml 文件中定义它?

我试过了:

<bean id="userService" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
    <property name="targetClass" value="org.mockito.Mockito"/>
    <property name="targetMethod" value="mock"/>
    <property name="arguments" value="????">
    </property>
</bean>

如何将 my.UserService 作为参数传递给 mock 方法?可能吗?

您可以使用 factory-method 方法来完成。 Spring 会将构造函数参数解释为 Class 对象。

<bean id="userService" class="org.mockito.Mockito" factory-method="mock">
  <constructor-arg value="fully.qualified.class.name.SomeCls" />
</bean>

我还没有尝试过,但假设您可以对 MethodInvokingFactoryBean 执行相同的操作,方法是将完全限定的 class 名称传递给 arguments 属性 .