Можно ли высмеять сообщение буфера протокола Java?
Классы буферов протокола отмечены final
, предположительно для эффективности; однако это затрудняет их тестирование - Mockito не может издеваться над последними классами. Я пробовал использовать PowerMockito
без успеха: я получаю ClassFormatError
при подготовке класса final
для теста.
Мое решение до сих пор заключается в создании макетов адаптивных интерфейсов, но я надеюсь на менее трудоемкий подход.
Ответы
Ответ 1
JMockit может обрабатывать final
и static
. Просто обратите внимание на то, как его настроить, так как для этого требуется параметр JVM -javaagent, или изменения пути к классу, или дополнительные аннотации, чтобы можно было имитировать вещи final
и static
.
Ответ 2
JDave имеет Unfinalizer, который интегрируется с JMock ClassImposteriser
Он не может отформатировать классы, загруженные из загрузчика классов загрузки, и для запуска тестов требуется аргумент виртуальной машины.