Тестирование веб-приложения бэкэнда БД в java [необходим инструмент]

Я хочу создать тестовый костюм для своего веб-приложения Java. Это приложения JSP с возможностью подключения JDBC. Мои требования заключаются в следующем,

1 - я должен иметь возможность тестировать логику моей базы данных (запросы и т. д.) через мои модели.

2 - Было бы здорово, если бы я мог также протестировать свои страницы .jsp (если это возможно)

Проведя некоторое исследование, я обнаружил, что DBUnit хорош для тестирования серверной системы базы данных, но, к сожалению, я не смог найти хороший ресурс для начинающих.

Что вы все думаете о вариантах тестирования, которые у меня есть, и было бы здорово, если бы вы также разместили несколько ссылок на ресурсы/примеры?

РЕДАКТИРОВАТЬ:

и я столкнулся с фиктивными объектами (например, JMock ..), интересно, могу ли я использовать его в качестве замены DBUnit?

заранее спасибо

ваше здоровье

Самера


person sameera207    schedule 12.04.2011    source источник


Ответы (3)


Из вашего вопроса неясно, хотите ли вы запускать интеграционные тесты (интерфейсный + серверный) или модульные тесты для вашего уровня базы данных.

Если вам нужен инструмент, позволяющий писать интеграционные тесты, обязательно обратите внимание на Selenium. С помощью Selenium вы можете создавать функциональные тесты, просто перемещаясь по вашему веб-сайту (страницам JSP) и утверждая, что материал на странице существует или равен некоторым значениям.

Selenium поставляется с плагином Firefox, который в основном генерирует код для вас. Вы можете воспроизвести тест в браузере или экспортировать его в виде кода Java и сделать частью набора тестов. Selenium — бесценный инструмент.

Недостаток использования такого инструмента, как Selenium, заключается в том, что ваше приложение должно быть где-то развернуто, прежде чем вы сможете запустить свой набор тестов. Это может быть ограничением, если вы планируете запускать автоматические тесты, созданные с помощью Selenium.

Если вас интересует только тестирование кода доступа к базе данных (DAO, уровень доступа к данным), DBUnit — идеальный инструмент. Как правило, DBUnit используется для инициализации таблиц базы данных перед тестированием и, реже, для проверки содержимого базы данных. DBUnit использует формат на основе XML для представления данных, которые будут вставлены в базу данных.

Файлы XML, содержащие данные для предварительного заполнения базы данных, обычно запускаются сценарием сборки (Ant, Maven и т. д.) или непосредственно в коде модульного теста. Я использовал оба подхода, это действительно зависит от того, как структурирован ваш код и как вы получаете доступ к базе данных (Hibernate, Spring+Hibernate, JDBC...).

Если ваша база данных не слишком велика, я бы рекомендовал вам заполнить ее непосредственно перед запуском набора тестов. В качестве альтернативы вы можете заполнить только те таблицы, которые вы хотите протестировать перед каждым тестом.

Вот ссылка на Unitils, дополнительную библиотеку, которую можно использовать поверх DBUnit для упрощения стратегии тестирования базы данных. Думаю, его можно использовать в качестве справочного материала для начала работы: http://www.unitils.org/tutorial.html#Database_testing

Вот еще одна ссылка (довольно старая, 2004 года), показывающая базовую механику DBUnit:

http://onjava.com/pub/a/onjava/2004/01/21/dbunit.html

person Luciano Fiandesio    schedule 12.04.2011

Официальная вводная статья DBUnit здесь сработала для меня. Re: тестирование логики базы данных, вы также можете проверить это.

Что касается тестирования JSP, я использовал Cactus для успешного тестирования своих сервлетов. Однако я не знаю о его возможностях для тестирования JSP.

person Chry Cheng    schedule 12.04.2011

Для вашего 1-го вопроса взгляните на этот StackOverFlow нить...

Во-вторых, я бы выбрал Cactus или Selenium.

Надеюсь, это поможет.

person Nilesh    schedule 12.04.2011