Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Como testar um controller que responde com uma exceção

Olá,

Tenho um controler q responde com true para sucesso ou uma exception em caso de erro.

Qual a forma correta para testar um controller com essas características ?

Consultei em alguns artigos q é necessário uma annotation @exceptionHandler(minha_exception.class) no controller e um método q trate a exception lançada.

O Problema:

O "exception handler" impede o app de responder com uma exceção em caso de erros no ambiente de desenvolvimento!

Alguém sabe como resolver ?

grato

4 respostas

Oi!

Isso vai depender de quais frameworks você estiver utilizando. Se for Spring Boot, tem um curso que mostra como testar os controllers em algumas situações: https://cursos.alura.com.br/course/spring-boot-3-documente-teste-prepare-api-deploy

Olá , professor !

A framework é Spring Boot .

No caso apresentado no curso o método do seu controller possui uma "annotation" que valida o DTO e gera um response adequado.

No meu caso o método lança uma "exception" quando ele "não encontra" o valor na base de dados.

Por este motivo o ".andReturn()" não funciona e o método ".perform()" lança uma exception "NestedServeletExeption".

Qual a forma mais correta:

  • testar "NestedServeletExeption" com um try{} catch{} ?
  • usar um @ExceptionHandler ?

grato pela atenção

No geral é criado um exception handler mesmo, para capturar essa exception e devolver erro 400 para o cliente. E o teste checa se nesse cenário está sendo devolvido o codigo 400 pelo controller.

solução!

Certo, professor.

Vou implementar essa solução.

agradecido pela atenção.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software