sql >> Database >  >> RDS >> Mysql

DbUnit testen MySQL Java

DbUnit kan werken met een echte database. Je kunt het alleen met xml doen.

Voeg eerst iets toe aan pom.xml zoals dit (versie kan een andere zijn):

<dependency>
    <groupId>org.dbunit</groupId>
    <artifactId>dbunit</artifactId>
    <version>2.5.0</version>
</dependency>

<dependency>
    <groupId>com.github.springtestdbunit</groupId>
    <artifactId>spring-test-dbunit</artifactId>
    <version>1.1.0</version>
</dependency>

Voeg vervolgens spring-config.xml toe aan uw testbronnen-directory (ik gebruik postgresql)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">


    <bean id="dataSource"
          class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="org.postgresql.Driver" />
        <property name="username" value="****" />
        <property name="password" value="*****" />
        <property name="url" value="url-to-server-with-your-db"/>
    </bean>

    <bean id="jdbcTemplate"
          class="org.springframework.jdbc.core.JdbcTemplate">
        <constructor-arg ref="dataSource" />
    </bean>

</beans>

Voeg bonen toe voor klassen die je moet testen in deze xml.

Voeg annotaties toe in de testklas:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"/spring-config.xml"})
@TestExecutionListeners({DependencyInjectionTestExecutionListener.class,
        DirtiesContextTestExecutionListener.class,
        TransactionalTestExecutionListener.class,
        DbUnitTestExecutionListener.class})

Voeg vóór de testmethode annotaties toe die u nodig hebt, afhankelijk van het testdoel. Bijvoorbeeld:

@DatabaseSetup(value = "/testData.xml")
@DatabaseTearDown(value = "/testData.xml")

Wat betekent het? Je hebt je xml met dataset. Gegevens in dit bestand worden vóór de test naar uw database gepusht (@DatabaseSetup), en na de test kunt u dit opnieuw doen (@DatabaseTearDown) - hetzelfde bestand voor het herstellen van de oorspronkelijke staat of een ander bestand als u nodig hebt. Dat is alles.



  1. Oracle 10g PL/SQL- Selecteer resultaten als updatekolomwaarden

  2. MySQL - haal een waarde op uit een andere tabel als de kolom null is

  3. enwiki-latest-categorylinks.sql laden in mysql

  4. PostgreSQL-gegevens repliceren naar externe sites