Quando eu rodo o teste, o console processa alguma coisa, mas logo finaliza em branco(aparece "terminated, etc" no topo do console).
Se puderem ajudar, agradeço!
Quando eu rodo o teste, o console processa alguma coisa, mas logo finaliza em branco(aparece "terminated, etc" no topo do console).
Se puderem ajudar, agradeço!
Oi Diego,
Posta aqui como ficou a sua classe de teste.
Oi, Rodrigo. Complementando o problema do colega de cima, eu tive o mesmo caso. A confusão está pq foi usado o New JUnit test no penúltimo vídeo da aula 3 e, para ula 4, passou para New Junit 4 test. Só que para rodar o do penúltimo vídeo, com New JUnit Test, precisou fazer algumas alterações desde que o vídeo foi lançado (segundo código).
Quando copiamos as anotações do CursoRepository para o AutenticacaoControllerTest, acaba vindo essas atualizações também.
No caso, a minha AutenticacaoControllerTest ficou assim:
package br.com.alura.forum.controller;
import java.net.URI;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
@ActiveProfiles("test")
public class AutenticacaoControllerTest {
@Autowired
private MockMvc mockMvc;
@org.junit.jupiter.api.Test
public void deveriaDevolver400SeOsDadosDeAutenticacaoEstejamIncorretos() throws Exception {
URI uri = new URI("/auth");
String json = "{\"email\":\"invalido@email\",\"senha\":\"123456\"}";
mockMvc.perform(MockMvcRequestBuilders
.post(uri)
.content(json)
.content(json)
.contentType(MediaType.APPLICATION_JSON))
.andExpect(MockMvcResultMatchers
.status()
.is(400));
}
}
A anotação `@org.junit.jupiter.api.Test` ficou estranha, mas funcionou apenas dessa forma, pois quando importava @Test com JUnit 4, vinha o o @Test da notação antiga, com essa anotação com nome completo funcionou (além de outras correções do vídeo anterior).
Aliás, se alguém usando o 2.7.0 também tenha passado por problemas com as classes de testes anteriores, essa foi a solução encontrada.
package br.com.alura.forum.repository;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import br.com.alura.forum.modelo.Curso;
@ExtendWith(SpringExtension.class)
@DataJpaTest
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
@ActiveProfiles("test")
class CursoRepositoryTest {
.
@Autowired
private CursoRepository repository;
@Autowired
private TestEntityManager em;
@Test
public void deveriaCarregarUmCursoPeloNome() {
String nomeCurso = "HTML 5";
Curso html5 = new Curso();
html5.setNome(nomeCurso);
html5.setCategoria("Programacao");
em.persist(html5);
Curso curso = repository.findByNome(nomeCurso);
Assertions.assertNotNull(curso);
Assertions.assertEquals(nomeCurso, curso.getNome());
}
@Test
public void NaodeveriaCarregarUmCursoPeloNome() {
String nomeCurso2 = "Wololo";
Curso curso = repository.findByNome(nomeCurso2);
Assertions.assertNull(curso);
}
}
Veja que, ao invés de Assert, passamos a usar Assertions, além de outras mudanças.