Wie ein test datasource im spring?

Studiere ich Spring mit Hibernate jetzt. Ich habe ein POJO-Modell-Klasse, versehen mit Hibernate annotations genannte Person, interface PersonDao und es ist hibernate-Implementierung und eine Klasse PersonService. Ich bin mit Anmerkungen, so dass Sie nicht definiert als Bohnen in meinem spring-config.xml. Jetzt will ich schreiben, JUnit4 tests für meine PersonService Klasse, aber ich will andere Datenbank beim testen. Hier ist meine spring-config.xml

<context:component-scan base-package="org.example" />
<tx:annotation-driven />

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://localhost/example" />
    <property name="username" value="root" />
    <property name="password" value="pwd" />
</bean>

<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory" />
</bean>

<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
            <prop key="hibernate.show_sql">true</prop>
            <prop key="hibernate.hbm2ddl.auto">update</prop>
        </props>
    </property>
    <property name="annotatedClasses">
        <list>
            ...
        </list>
    </property>
</bean>

Und ich will in meinen tests hat das jdbc:mysql://localhost/example_test Datenbank verwendet werden. Wie kann ich das erreichen?

  • Ihre unit-tests, sollten Sie nicht verwenden, eine Datenbank als nicht eigentlich zum testen der Datenbank, sondern deine Klasse versuchen Sie stattdessen, so etwas wie mockito statt code.google.com/p/mockito
Schreibe einen Kommentar