1
resposta

Dando new no ResponseEntity na hora de realizar o teste unitário

Quando eu for realizr o teste unitário, com o trecho que eu faco o new TopicoDTO no body, não seria uma prática ruim?

public ResponseEntity cadastrar(@RequestBody TopicoForm form, UriComponentsBuilder uriBuilder) {

    Topico topico = form.converter(cursoRepository);
    topicoRepository.save(topico);

    URI uri = uriBuilder.path("/topicos/{id}").buildAndExpand(topico.getId()).toUri();

    return ResponseEntity.created(uri).body(new TopicoDTO(topico));
}
1 resposta

Oi,

O ideal para testar controllers é utilizar a API de testes do Spring, que no caso vai simular uma requisição para o controller e avaliar a resposta(código http e corpo da resposta).

Desse jeito será indiferente o new TopicoDTO(topico), pois o teste vai avaliar o json devolvido, independente de como ele foi montado.

Tem um exemplo de teste de controller nesse post: https://emmanuelneri.com.br/2017/03/18/teste-de-controllers-no-spring-boot/

Bons estudos!