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