sql >> Databáze >  >> RDS >> Mysql

Testování DbUnit MySQL Java

DbUnit umí pracovat se skutečnou databází. Můžete to udělat pouze s xml.

Nejprve přidejte do pom.xml něco takto (verze může být jiná):

<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>

Poté přidejte do svého adresáře testovacích zdrojů spring-config.xml (používám 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>

Přidejte fazole pro třídy, které potřebujete otestovat v tomto xml.

V testovací třídě přidejte anotace:

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

Před testovací metodou přidejte poznámky, které potřebujete v závislosti na cíli testu. Například:

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

Co to znamená? Máte svůj xml s datovou sadou. Data v tomto souboru se před testem přesunou do vaší databáze (@DatabaseSetup) a po testu to můžete udělat znovu (@DatabaseTearDown) - stejný soubor pro obnovení původního stavu nebo jiný soubor, jaký potřebujete. To je vše.



  1. ORA-04091:tabulka xx_xx mutuje, spouštěč/funkce ji nemusí vidět

  2. Jak zobrazit aktuální připojení v MySQL Workbench pomocí GUI

  3. Nelze zrušit tabulku:Omezení cizího klíče se nezdaří

  4. Jeden až mnoho/mnoho až mnoho SQL