Como posso inicializar meus Primavera Bota testes 2 de integração para que em todos eles eu posso ter um conjunto de configurações que pré-sementes no banco de dados de teste com alguns dados de teste que podem ser usados em todos os testes de integração?
Supondo que você está usando banco de dados de teste de h2.
Meu src / test / recursos / application.properties arquivo tem:
spring.jpa.hibernate.ddl-auto=create-drop
Você vai precisar de um arquivo de configuração com a seguinte estrutura. (Este é um exemplo de configuração localizado dentro da pasta src / teste / 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' O arquivo: (o caminho completo é /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'));
Se você estiver usando entidades mapeadas (com @Entity) (com criar-drop) você não vai precisar a parte 'CREATE TABLE' para isso.
E agora, todos os seus testes de integração têm inserido os dados de script
Edit: (My estrutura de teste) que eu criei no GitHub meu exemplo de aplicação. Por favor, veja a estrutura de teste e executar os testes:
TNotMappedRepository.testLoadDataFind()
PersonRepository.testLoadDataFind()