Olá pessoal.
Estou tentando remover um item através do teste abaixo. Consigo verificar que o objeto existe no banco, recupero as informações mas quando rodo o teste nada acontece (o item permanece no banco).
@Test
public void deveRemover_UmaPauta() {
// Define o item que deve ser removido.
Pauta pauta = new Pauta("Pauta - Juros", new Associado("Matheus","607.989.726-10","sim"));
// Se já existir o item retorna com o ID gerado pelo banco.
ResponseEntity<Pauta> pautaCompletaComId = this.testRestTemplate.getForEntity("/pauta/associado/cpf/607.989.726-10", Pauta.class);
// Extraindo para o objeto Pauta
Pauta p2 = new Pauta();
p2 = pautaCompletaComId.getBody();
//Tenta deletar
HttpEntity<Pauta> request = new HttpEntity<>(p2);
this.testRestTemplate.delete("/pauta/", request, Pauta.class);
}
Se o teste estiver junto com a aplicação não faz sentido utilizar o RestTemplate para chamar sua própria aplicação, RestTemplate é utilizado para se comunicar com clients terceiros!
Neste caso crie testes para validar os services, se quiser validar a entrada e saída de dados considere utilizar o RestAssured, que já tem este propósito.
1 curtida
Para testar seus controllers, use o MockMvc do Spring.
1 curtida
Obrigado pelas dicas pessoal. Sou iniciante e ainda estou perdido em relação a qual tecnologia utilizar.
No final das contas consegui resolver usando TestRestTemplate, vou deixar a solução aqui caso alguém precise:
> @Test
> public void deveRemover_UmaPauta() {
> Pauta pauta = new Pauta("Pauta - Juros", new Associado("Matheus","607.989.726-10","sim"));
> pauta.setIdPauta("5f989130bd2f01333dc28438");
> ResponseEntity<Pauta> exchange = this.restTemplate.exchange("/pauta/{id}" , HttpMethod.DELETE, null, Pauta.class, pauta.getIdPauta());
> Assertions.assertThat(exchange.getStatusCodeValue()).isEqualTo(200);
> }