Моя команда разработчиков начала использовать Mockito и имеет классы, которые были определены как "final". Я прочитал в "Эффективной Java" Джошуа Блоха и в потоке SO Когда использовать окончательный вариант, чтобы все классы использовали последний модификатор. В потоке было некоторое несогласие, но я согласен с идеей форсировать состав класса, если наследование не имеет смысла.
Что делать, если я хочу тестировать классы с использованием инфраструктуры тестирования, такой как Mockito, которая требует, чтобы классы не имели "окончательного" модификатора?. Я надеюсь, что кто-то другой столкнулся с подобными проблемами во время их развитие. В каких резолюциях ваша команда разработчиков прибыла?
Есть два очевидных ответа, таких как использование JMock или удаление "final" модификатора для классов, которые мы хотим протестировать, но мы хотим придерживаться одной внешней среды тестирования (помимо JUnit), и может быть трудно убедить других разработчиков для удаления модификатора 'final'.
Спасибо.