Я тут чтото вспомнил. Почему-то люди противопоставляют функциональное и юнит-тестирование.
Так вот это не противоположности, а перпендикулярные оси. Делить тесты можно по разным признакам: функциональное vs тестирование производительности, юнит vs интеграционное.
И ещё: при юнит тестах не обязательно тестировать каждый метод класса. Юнитом вполне может считаться отдельный класс. Например, очевидно что геттер и сеттер одного поля нельзя проверить независимо не влезая во внутреннюю структуру объекта или не имея альтернативного сеттера (например параметра конструктора)