W poprzednim tygodniu wrzucałem zbiór bibliotek przydatnych w projektach Java, a dziś prezentuję kawałek kodu, który również, od długiego czasu, zalegał w czeluściach moich notatek. Pokazuje on, jak, w prosty sposób, przetestować (z wykorzystaniem frameworku Spock) funkcjonalność @ExceptionHandler-ów dostępną w Springu.

Kod produkcyjny

Na początek przygotujmy użycie @ExceptionHandler-a:

Pomocniczy endpoint

Zanim przejdziemy do właściwego testu, stwórzmy pomocniczy endpoint, który będzie rzucał dowolny zadany mu wyjątek:

Test

Na koniec przejdźmy do właściwego testu, który wykorzysta nasz pomocniczy endpoint do rzucenia wyjątku javax.persistence.EntityNotFoundException i sprawdzenia, czy nasz @ExceptionHandler przechwyci go, zwracając status 404 z odpowiednim komunikatem:

Prawda, że proste? 🙂

Picture Credits