Я хочу использовать JUnit для тестирования, в спящем режиме код те, которые вставляют, обновляют, удаляют.. метод и управление транзакциями.
Но я не знаю, как подать заявку, модульный тест на В спящем режиме полезно и с чем я должен протестировать, в спящем режиме.
Как я могу протестировать методы ДАО?
Надеюсь, что Вы могли дать мне некоторые руководства!
Вы можете использовать DBUnit для тестирования уровня DAO. Потому что вам нужны данные для тестирования.
Пример: DBUnit xml вставит фиктивные данные в описанную вами базу данных, а затем вы можете вызвать assertEquals ("myname", userDAO.findById (1) .getName ()); и т.п. После проверки вы можете удалить фиктивные данные с помощью DBUnit . Проверьте деталь .
Документы
Тестирование гибернации с помощью dbunit
DBUnit и Hibernate
Я использую подход Криса Ричардсона, описанный в POJO в книге действий
База данных SQL в памяти
Плюсы
Минусы
Именованные запросы
Плюсы
Минусы
Мок-репозитории
Плюсы
Минусы
DBUnit
Плюсы
Минусы
с уважением,
Вы можете использовать несколько подходов, в зависимости от вашего сценария
@Before
и удалите в @After
. Однако это не совсем «модульный» тест, потому что он зависит от некоторых внешних предварительных условий. Хорошо, несколько очков.
Прежде всего, , если вы должны протестировать реальный код, который общается с БД , используйте DBUnit для облегчения вашей жизни, и рекомендуется использовать HSQLDB, чтобы ваши тесты могли настроить свою среду во время выполнения, не требуя, чтобы база данных уже была установлена и настроена.
Во-вторых, если вам не нужно разговаривать с БД , я бы использовал общую имитационную библиотеку (будь то EasyMock, JMock или Mockito, например), и сделать так, чтобы тесты не взаимодействовали с БД, что обычно делает тесты быстрее и проще.
Лично я очень осторожно отношусь к использованию встроенных баз данных, таких как HSQLDB с Hibernate, и ожидаю, что все будет работать точно так же, когда вы переместите его на сервер Oracle / MySQL / SQL. Hibernate - слишком неплотная абстракция для этого.
У меня нет опыта работы с другими средами, кроме JUnit. Я считаю, что он очень хорошо справляется со своей задачей. Вот некоторые вещи, которые я всегда помню: