Mysql
 sql >> база данни >  >> RDS >> Mysql

DbUnit тества MySQL Java

DbUnit може да работи с реална база данни. Можете да го направите само с xml.

Първо добавете нещо към pom.xml по този начин (версията може да бъде друга):

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

След това добавете към вашата директория с тестови ресурси spring-config.xml (използвам 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>

Добавете зърна за класове, които трябва да тествате в този xml.

В тестовия клас добавете анотации:

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

Преди тестовия метод добавете анотации, от които се нуждаете в зависимост от целта на тестовете. Например:

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

Какво означава? Имате своя xml с набор от данни. Данните в този файл ще бъдат прехвърлени към вашата база данни преди теста (@DatabaseSetup), а след теста можете да направите това отново (@DatabaseTearDown) - същият файл за възстановяване на първоначалното състояние или друг файл, от който се нуждаете. Това е всичко.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вземете последния ред с group by и Laravel

  2. MYSQL не получава данни от PHP

  3. Посоченият ключ за Laravel беше твърде дълъг при създаване на таблица с известия

  4. небуферирана заявка с MySQLi?

  5. Увеличаване на размера за импортиране на mysql