Предположим, вы используете тестовую базу данных h2.
Мой src / test / resources / application.properties * Файл 1004 * имеет:
spring.jpa.hibernate.ddl-auto=create-drop
Вам потребуется файл конфигурации со следующей структурой.(Это пример конфигурации, расположенный внутри папки src / test / java ):
@Profile("test")
@Configuration
public class H2Config {
@Autowired
private DataSource datasource;
@PostConstruct
public void loadSQL() throws Exception {
ScriptUtils.executeSqlScript(datasource.getConnection(), new ClassPathResource("/sql/load_database.sql"));
}
}
Файл 'load_database.sql': (полный путь / src/test/resources/sql/load_database.sql)
CREATE OR REPLACE TABLE OPER_DISPN(
ID NUMBER NOT NULL,
DT_VCTO_OPER DATE NOT NULL
);
INSERT INTO OPER_DISPN(ID,DT_VCTO_OPER) VALUES (1,TO_DATE('2018/09/21', 'yyyy/mm/dd'));
Если вы используете сопоставленные сущности (с @Entity) (с create-drop), вам не понадобится 'CREATE TABLE'часть для этого.
И теперь во все ваши интеграционные тесты вставлены данные скрипта
Редактировать: (Моя структура теста) Я создал в github мой пример приложения,Пожалуйста, просмотрите структуру теста и запустите тесты:
TNotMappedRepository.testLoadDataFind()
PersonRepository.testLoadDataFind()
Github: https://github.com/thiagochagas/insert-data-tests