Модульное тестирование REST сервиса
Пишу REST сервис на CDI. Используется библиотека helidon. При запуске этот сервис получает часть конфигурации с другого сервиса. Это сделано при помощи специального config-интерфейса org.eclipse.microprofile.config.spi.ConfigSource. Класс, реализующий этот интерфейс загружается через ServiceLoader, в конструкторе делает запрос к удаленному REST-сервису, получает с него конфигурацию и потом ее отдает тому кто попросит.
Теперь мне для моего сервиса нужно написать модульные тесты. Проблема в том, что тестирующий движок запускает сервис в самом начале, до возникновения всяких @BeforeAll, когда можно было бы настроить, например Mockito и переопределить работу этого класса. Сервис ломится на удаленный сервис, его не находит и на этом все завершается с исключением.
Вопрос. Как решить данную проблему? Меня устроит даже вариант, если в фазе тестирования ServiceLoader просто не будет создавать экземпляр этого конфигурационного класса.
Ответы (1 шт):
Решение было найдено. Я определил класс с тем же именем, который реализовывал интерфейс ConfigSource но в папке test/java. В итоге ServiceLoader стал загружать именно тестовую реализацию