Boa tarde Rodrigo,
Estou tentando implementar um teste para validar o endpoint de detalhar um tópico.
Porém estou tomando erro dizendo que esta retornando 404
ao invés de 200
, gostaria de uma ajuda para ver se estou fazendo alguma coisa errada.
Desde já agradeço pela atenção.
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
@AutoConfigureTestEntityManager
@Transactional
@ActiveProfiles("test")
public class TopicosControllerTest {
private MockHttpServletRequestBuilder request;
private ResultMatcher expectedResult;
@Autowired
private TestEntityManager entityManager;
@Autowired
private MockMvc mock;
@Before
public void setUp() throws Exception {
Curso springBoot = new Curso();
Curso html5 = new Curso();
springBoot.setNome("Spring Boot");
springBoot.setCategoria("Programação");
html5.setNome("HTML 5");
html5.setCategoria("Front-end");
Topico topico1 = new Topico("Dúvida", "Error ao criar projeto", springBoot);
Topico topico2 = new Topico("Dúvida 2", "Projeto não compila", springBoot);
Topico topico3 = new Topico("Dúvida 3", "Tag HTML", html5);
entityManager.persist(springBoot);
entityManager.persist(html5);
entityManager.persist(topico1);
entityManager.persist(topico2);
entityManager.persist(topico3);
}
@Test
public void testDetalhar() throws Exception {
request = MockMvcRequestBuilders.get("/topicos/1");
expectedResult = MockMvcResultMatchers.status().isOk();
String response = mock.perform(request).andExpect(expectedResult).andReturn().getResponse()
.getContentAsString();
Assert.assertNotNull(response);
Assert.assertTrue(response.contains("NAO_RESPONDIDO"));
}
}