2011-01-26 12 views
1

Устали от ручных мастеров, я пытаюсь ввести Mockito в свой проект.Альтернативы частичным издевательствам?

Предположим, у меня есть куча аксессуаров базы данных, которые изолируют все запросы Hibernate для данного варианта использования (или службы). Поэтому у меня могут быть такие интерфейсы, как RoutingDao, UserDao, ReportingDao. Каждый из этих интерфейсов распространяет очень общий Dao с такими методами, как commit(), rollback() или reload(Entity). С Hibernate последний должен перезагрузить отдельный объект с текущим сеансом. В тестах он должен просто вернуть свой аргумент.

С ручными мастерами это было легко: у меня был MockDao с общей реализацией этого метода, и MockRoutingDao расширил бы MockDao и использовал бы эту реализацию. Один из способов, который я вижу с Mockito, - создать MockRoutingDao, который расширяет MockDao и делегирует ему незаписанные вызовы. Не унаследованные методы будут издеваться над spy(). Но это довольно уродливо - мне все еще нужно ручное макет, и вся идея частичного издевательства наследования для повторного использования некоторой реализации - беспорядок.

Как его улучшить? Каковы наилучшие методы создания общей реализации для макетного метода, который можно использовать повторно во многих тестах?

+0

Вы смотрите на EasyMock? – Griff

+0

@Griff Powermock также отличный инструмент – PaoloVictor

+0

Powermock предназначен для насмешливой статики и рядовых (он делает это, вызывая другой загрузчик классов); он используется * в сочетании с * насмешливой структурой, такой как Mockito или EasyMock. – tpdi

ответ

1

Вы действительно хотите написать org.mockito.stubbing. Ответная реализация, которая обрабатывает общий материал, каждый дескриптор DAO.

Вы все еще можете добавить пользовательский when.

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

  • Нет связанных вопросов^_^