Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Testowanie DbUnit MySQL Java

DbUnit może pracować z prawdziwą bazą danych. Możesz to zrobić tylko za pomocą xml.

Najpierw dodaj do pom.xml coś takiego (wersja może być inna):

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

Następnie dodaj do katalogu zasobów testowych spring-config.xml (ja używam 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>

Dodaj ziarna dla klas, które chcesz przetestować w tym pliku xml.

W klasie testowej dodaj adnotacje:

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

Przed metodą testową dodaj adnotacje potrzebne w zależności od celu testu. Na przykład:

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

Co to znaczy? Masz swój xml z zestawem danych. Dane w tym pliku zostaną przesłane do Twojej bazy danych przed testem (@DatabaseSetup), a po teście możesz to zrobić ponownie (@DatabaseTearDown) - ten sam plik do przywrócenia stanu początkowego lub inny plik, który jest potrzebny. To wszystko.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql COUNT(*) na wielu stołach

  2. Indeksy MySQL - jakie są najlepsze praktyki według tej tabeli i zapytań

  3. Jakie uprawnienia są wymagane w MySQL do uruchomienia wyzwalacza?

  4. Błąd ALTER TABLE

  5. SELECT zakres liczb całkowitych w MySQL. Np. 1,2,3,4,...,n;