Переписывать ли класс для удобного тестирования spring rest client?
Собственно вот какая дилемма:
Тестируют только публичные методы.
Для обращения к публичному api - у меня в классе есть приватный метод - получения токена авторизации. - он вызывается при вызове любого публичного метода обращения к rest.
Тестировать получения токена - я считаю, что требуется обязательно. Но так же считаю, что делать метод получения токена - публичным - лишнее (кроме возможности удобного теста).
Как вообще обходят такие противоречия?
Если хочется тестировать отдельно получение токена (интеграционные тестирование) то тут надо отдельную компоненту иметь. Что же касается тестирования компоненты для обращения к API то проверяется в целом ответ. И если там ошибка авторизации то тест должен упасть. Это нормально
Так понятно, что должен упасть, но тут все в логику упирается. С моей точки зрения - логично получение токена тестировать отдельно.
Ай, проще поступиться с принципами и сделать публичным :)
Алексей Копендаков, не надо делать публичным. Просто не надо смешивать кислое с длинным. Одна компонента должна отвечать за вашу бизнес-логику, а другая - SDK для взаимодействия с API (в котором как раз все методы публичные)