Mockito - MockSettings с пружиной - PullRequest
       4

Mockito - MockSettings с пружиной

2 голосов
/ 17 февраля 2012

Я пытаюсь настроить макет объекта (используя Mockito) через конфигурацию пружинного компонента, однако я не знаю, как настроить MockSettings для этого объекта.Особенно я хотел бы настроить сериализацию объекта.

Программно это возможно:

Object serializableMock = mock(Object.class, withSettings().serializable());
<bean id="object" name="object" class="org.mockito.Mockito" factory-method="mock">
    <constructor-arg value="object" />
    <constructor-arg value="org.mockito.MockSettings"> ???  </constructor-arg>
</bean>

Может кто-нибудь подсказать мне, как это сделать?Заранее спасибо

Кстати: я хочу использовать чистую конфигурацию XML.

Ответы [ 2 ]

1 голос
/ 17 февраля 2012

Только через XML вы не можете.

На самом деле я бы не советовал вам практиковать использование макетов Mockito весной для тестирования. И вот почему:

  • Обычно, когда Unit Testing , вы хотите протестировать один класс изолированно, в конце концов, это модульное тестирование, поэтому Spring DI вообще не нужен в этом случае , Вы просто вводите сотрудников вашего испытуемого самостоятельно или, возможно, с помощью удобной аннотации @InjectMock.

  • Если, однако, вам нужно протестировать что-то с другой системой, такой как DAO с базой данных, тогда вам, вероятно, понадобится проводка Spring для подключения к реальной БД или к какой-либо в БД памяти, такой как H2. Но в этом случае вы создаете интеграционный тест . И, скорее всего, в этом случае вам не нужны насмешки.

Тем не менее, у вас могут быть особые потребности, и вышеприведенный пункт может быть неуместен в вашем конкретном ограниченном контексте . Но опять же, по моему мнению, если это конкретно, я не думаю, что было бы излишним создавать себе простой фабричный компонент MockSettings (который мог бы быть даже настраиваемым).

например. Вы можете написать это раз и навсегда в техническом модуле вашего приложения:

public class SpringMockSettingsFactoryBean extends AbstractFactoryBean<MockSettings> {
    @Override public Class<Multimap> getObjectType() {
        return MockSettings.class;
    }

    @Override protected Multimap<String, String> createInstance() throws Exception {
        // ... your code

        return mockSettings;
    }
}

Существует проект springockito для битбакета, который пытается создать сфокусированное на mockito пространство имен весной. Я не думаю, что проект может сделать это, но автору фреймворка может быть интересно реализовать эту функцию.

Надеюсь, это поможет.

0 голосов
/ 02 марта 2015

да, вы можете сделать это через XML


<div class="snippet" data-lang="js" data-hide="false">
<div class="snippet-code">
<pre class="snippet-code-html lang-html prettyprint-override"><code>   <bean id="mockSettings" class="org.mockito.Mockito" factory-method="withSettings" init-     method="verboseLogging">

    </bean>
    <bean id="sqsHelper" class="org.mockito.Mockito" factory-method="mock">
        <constructor-arg value="com.elsevier.vtw.aws.helper.SQSHelper"/>
        <constructor-arg ref="mockSettings" />

    </bean></code>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...