Как издеваться над бобом источника данных в тесте класса - PullRequest
0 голосов
/ 26 сентября 2018

Я хочу протестировать класс с внедренным компонентом источника данных, но я не знаю, как смоделировать источник данных компонента (у меня нет класса, но есть только конфигурация компонента).Мой класс такой:

public class Configurazione {
    private DataSource dataSource;

    public DataSource getDataSource() {
       return dataSource;
    }

    public void setDataSource(DataSource dataSource) {
        this.dataSource = dataSource;
    }
    ...
 }

мои бобы:

<bean id="Configurazione" class="com.company.configurazione.Configurazione">
    <property name="dataSource" ref="dataSourceMySql" />
</bean>
<bean name="dataSourceMySql"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="..." />
    <property name="username" value="..." />
    <property name="password" value="..." />
</bean>

как я могу протестировать класс Configurazione с помощью mockito и внедрить компонент источника данных?У меня нет класса DataSource для @mock в тестовом классе Configurazione.

1 Ответ

0 голосов
/ 26 сентября 2018

Обычно для целей тестирования создается дополнительный контекст приложения Spring.И вы можете определить бобы там по-другому.Например, вы можете использовать базу данных HSQL в памяти в качестве источника данных

  <jdbc:embedded-database id="dataSource" type="HSQL" >
    <jdbc:script location="scripts/ddl/sequences/*"/>
    <jdbc:script location="scripts/ddl/tables/*"/>
    <jdbc:script location="scripts/dml/*"/>
 </jdbc:embedded-database>

Чтобы использовать этот фрагмент кода как есть, вам нужно добавить hsql-зависимость в ваш проект и настроить пути к сценариям (эти сценарии создают иЗаполните схему базы данных, используемой в ваших тестах).И вы запускаете свои тесты с этим контекстом тестового приложения

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