2015-10-22 2 views
4

Недавно я написал специальный диалект для Тимелеафа вместе с пользовательским процессором для обработки некоторых пользовательских тегов и в некоторых случаях заменил их на разные, но у меня возникают проблемы с написанием тестов для процессора:Тестирование пользовательского диалекта Тимелеафа с помощью Mockito

AbstractProcessor класс требует, чтобы переопределить метод

protected ProcessorResult doProcess(Arguments arguments, ProcessorMatchingContext processorMatchingContext, Node node) 

, который является одним мне нужно проверить.

Поскольку мой процессор включает в себя получение переменных из параметра arguments, я попытался насмехаться над ним; однако классы Arguments, и Node объявлены окончательными, что означает, что они не могут издеваться над Mockito.

Я действительно не хочу создавать экземпляр фактического объекта Arguments, так как он зависит от 5 других объектов, которые не могут быть издевались, и я бы закончил писать тонны кода, чтобы протестировать только одну строку в моем процессоре.

Любые идеи относительно возможной стратегии тестирования?

+0

PowerMock может издеваться над финальными классами: https://code.google.com/p/powermock/wiki/MockFinal, а также статические методы и т. Д. –

+0

Я знаю, но это довольно большой проект, и я не знаю хотят представить PowerMock только для этого случая – Raibaz

ответ

0

Я не знаю, если это поможет или нет, но вы можете создать экземпляр фактические (без фиктивных) аргументов, не все 5 других зависимых классов, используя Objenesis

0

Вы пробовали mockito.when().thenReturn() Если ваш Параметры выполняют любые вызовы, необходимые для издевательства, после чего вы можете легко протестировать свой метод.

Смежные вопросы