Код IT
← Каталог

Инструменты для ручного и автоматизированного тестирования — DBUnit (Java)

Фрагмент из «Инструменты для ручного и автоматизированного тестирования»: DBUnit (Java).

java projectencyclopedia7-05-testirovanie-118 embed URL статья в энциклопедии
Java main.java

import org.dbunit.database.DatabaseConnection;
import org.dbunit.dataset.IDataSet;
import org.dbunit.dataset.xml.FlatXmlDataSetBuilder;
import org.dbunit.operation.DatabaseOperation;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import javax.sql.DataSource;
import java.sql.Connection;

public class UserServiceTest {

    private DataSource dataSource;
    private Connection connection;

    @BeforeEach
    public void setUp() throws Exception {
        // Инициализация DataSource (например, H2 in-memory)
        dataSource = createDataSource(); 
        connection = dataSource.getConnection();
        
        // Загрузка эталонных данных из XML
        IDataSet dataSet = new FlatXmlDataSetBuilder()
            .setColumnSensing(true)
            .build(new File("src/test/resources/datasets/users.xml"));
            
        DatabaseOperation.CLEAN_INSERT.execute(
            new DatabaseConnection(connection), 
            dataSet
        );
    }

    @Test
    public void testUserCreation() throws Exception {
        // Логика теста: вызов сервиса, который работает с БД
        // ...
        
        // Проверка результата
        // Можно использовать Asserts DBUnit для сравнения текущего состояния с эталоном
    }
}

import org.dbunit.database.DatabaseConnection;
import org.dbunit.dataset.IDataSet;
import org.dbunit.dataset.xml.FlatXmlDataSetBuilder;
import org.dbunit.operation.DatabaseOperation;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import javax.sql.DataSource;
import java.sql.Connection;

public class UserServiceTest {

    private DataSource dataSource;
    private Connection connection;

    @BeforeEach
    public void setUp() throws Exception {
        // Инициализация DataSource (например, H2 in-memory)
        dataSource = createDataSource(); 
        connection = dataSource.getConnection();
        
        // Загрузка эталонных данных из XML
        IDataSet dataSet = new FlatXmlDataSetBuilder()
            .setColumnSensing(true)
            .build(new File("src/test/resources/datasets/users.xml"));
            
        DatabaseOperation.CLEAN_INSERT.execute(
            new DatabaseConnection(connection), 
            dataSet
        );
    }

    @Test
    public void testUserCreation() throws Exception {
        // Логика теста: вызов сервиса, который работает с БД
        // ...
        
        // Проверка результата
        // Можно использовать Asserts DBUnit для сравнения текущего состояния с эталоном
    }
}