Um fora de configuração para um @SpringBootTest

n00b:

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?

Thiago Chagas :

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

Github: https://github.com/thiagochagas/insert-data-tests

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=207466&siteId=1
Recomendado
Clasificación