Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Dúvida nos testes das classes Controller

Tive a curiosidade de olhar a cobertura dos testes, e me deparei com esse resultado. Acredito que, ao passar uma String vazia ou incorreta, a própria validação feita com o @Valid já devolve um BadRequest, então ele nem se quer entra no bloco de código do método solicitar

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeA maneira que fez sentido para mim, foi lançar a exceção quando o service chama o método solicitar BDDMockito.doThrow(ValidacaoException.class).when(adocaoService).solicitar(dto);

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

A dúvida que ficou foi se essa abordagem não fere nenhum principio dos testes de unidade e se existe uma forma melhor de testar isso

1 resposta
solução!

Oi!

Sim, erros de validação do bean validations o próprio Spring que executa e devolve 400, sem nem entrar no método do controller.

Mas o try/catch seria para erros de regra de negócio, lançados pela service mesmo. Nesse caso o ideal é ter mais um cenário de teste para simular, exatamente como você fez.

Bons estudos!