Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Meu teste está falhando

Quando eu estou executando a classe de teste o JUnit está falhando acho que deve ser qnd estou buscando o curso no banco para fazer o Equals mas não tenho certeza.

Segue github: https://github.com/LucasrVeras/micro-forum

package br.com.sarev.microforum.repositories;

import org.junit.Assert;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.test.context.junit4.SpringRunner;

import br.com.sarev.microforum.modelo.Curso;

@RunWith(SpringRunner.class)
@DataJpaTest
class CursoRepositoryTest {

    @Autowired
    private CursoRepository cursoRepository;

    @Test
    public void carregarCursoPeloSeuNome() {

        String nomeCurso = "JavaScript";
        Curso curso = cursoRepository.findByNome(nomeCurso);
        Assert.assertNotNull(curso);
        Assert.assertEquals("JavaScript" ,curso.getNome());
    }
}
5 respostas

Quando executo aparece no console que está criando várias tabelas isso é normal?

ps: apaguei algumas linhas para n exceder o número de caracteres

Hibernate: 

    create table tb_curso (
       id  bigserial not null,
        categoria varchar(255),
        nome varchar(255),
        primary key (id)
    )
Hibernate: 

    create table tb_perfil (
       id  bigserial not null,
        nome varchar(255),
        primary key (id)
    )
Hibernate: 

    create table tb_resposta (
       id  bigserial not null,
        data_criacao timestamp,
        mensagem varchar(255),
        solucao boolean,
        autor int8,
        topico int8,
        primary key (id)
    )
Hibernate: 

    create table tb_topico (
       id  bigserial not null,
        data_criacao timestamp,
        mensagem varchar(255),
        status varchar(255),
        titulo varchar(255),
        autor int8,
        curso int8,
        primary key (id)
    )
Hibernate: 

    create table tb_usuario (
       id  bigserial not null,
        email varchar(255),
        nome varchar(255),
        senha varchar(255),
        primary key (id)
    )
Hibernate: 

    create table tb_usuario_perfils (
       usuario_id int8 not null,
        perfils int8 not null
    )
Hibernate: 

    alter table tb_resposta 
       add constraint FKtgscxxcmmcjht0cx1cir6bqxa 
       foreign key (autor) 
       references tb_usuario
Hibernate: 

    alter table tb_resposta 
       add constraint FK6w7oho4wvq5005gj6vsyqpc1w 
       foreign key (topico) 
       references tb_topico
Hibernate: 

    alter table tb_topico 
       add constraint FKbs7iveunuff3m6movma8ybvpi 
       foreign key (autor) 
       references tb_usuario
Hibernate: 

    alter table tb_topico 
       add constraint FKk5uxk36cnt5swngbs5vqbxmai 
       foreign key (curso) 
       references tb_curso
Hibernate: 

    alter table tb_usuario_perfils 
       add constraint FKlxhoe7jofs2ctv3ewmcnn95ew 
       foreign key (perfils) 
       references tb_perfil
Hibernate: 

    alter table tb_usuario_perfils 
       add constraint FKhmppa7efmgrb73975l9syykcy 
       foreign key (usuario_id) 
       references tb_usuario
2022-04-14 14:05:56.323  INFO 7424 --- [           main] o.h.e.t.j.p.i.JtaPlatformInitiator       : HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
2022-04-14 14:05:56.332  INFO 7424 --- [           main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2022-04-14 14:05:57.076  INFO 7424 --- [           main] b.c.s.m.r.CursoRepositoryTest            : Started CursoRepositoryTest in 4.065 seconds (JVM running for 5.253)
[org.springframework.orm.jpa.JpaTransactionManager@f42336c]; rollback [true]
Hibernate: 
    select
        curso0_.id as id1_0_,
        curso0_.categoria as categori2_0_,
        curso0_.nome as nome3_0_ 
    from
        tb_curso curso0_ 
    where
        curso0_.nome=?
2022-04-14 14:05:57.629  INFO 7424 --- [           main] o.s.t.c.transaction.TransactionContext   : Rolled back transaction for test: 

Oi Lucas,

Sim é normal aparecer os comandos SQL, pois o banco de dados é inicializado e as tabelas criadas ao rodar o teste. Acredito que o teste está falhando pois o banco de dados está vazio e não vai encontrar nenhum registro mesmo.

O Banco é criando mesmo eu usando o postgresql e não o h2? O banco tmb não está vazio eu coloquei o registro que estou querendo buscar é mesmo assim toda vez que inicio o teste no console aparece que está criando as tabelas.

solução!

Oi Lucas,

Do jeito que você configurou o teste o Spring vai utilizar o H2 para rodar os testes, criando o banco de dados do zero a cada execução.

Para usar o Postgresql você precisa fazer as configurações que foram mostradas nessa aula: https://cursos.alura.com.br/course/spring-boot-profiles-testes-deploy/task/81029

muito obrigado pela ajuda vou fazer a aula agora mesmo.