2015-02-04 3 views
0

Мы можем использовать Mockito.mock(SomeCls.class) для создания макета, но как мы можем использовать MethodInvokingFactoryBean, чтобы определить его в xml-файле приложения?Можно ли использовать метод MethodInvokingFactoryBean для создания макета?

Я пробовал:

<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? Является ли это возможным?

+0

is 'my.UserService' название класса или компонента? –

+0

Зачем вам это делать? Вы пытаетесь использовать @Spy и @InjectMocks? –

+0

@ Bond-JavaBond: 'my.UserService' - это полное квалифицированное имя класса – Freewind

ответ

1

Вы можете сделать это, используя подход factory-method. Spring будет интерпретировать конструктор-arg как объект Class.

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

Я не пробовал, но полагаю, вы могли бы сделать то же самое с MethodInvokingFactoryBean, пропусканием полного имени класса к arguments собственности.

Смежные вопросы