Бэкэнд-тестирование веб-приложения в java [необходим инструмент] - PullRequest
0 голосов
/ 12 апреля 2011

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

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

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

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

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

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

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

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

ура

Самера

Ответы [ 3 ]

1 голос
/ 12 апреля 2011

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

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

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

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

Если вас интересует только тестирование кода доступа к базе данных (DAO, Data Access Layer), 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

1 голос
/ 12 апреля 2011

Для вашего первого вопроса посмотрите на эту ветку StackOverFlow ...

Для второго, я бы согласился с предложением Кри о Кактус или Селен .

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

1 голос
/ 12 апреля 2011

Официальная статья DBUnit для начинающих здесь работает для меня.В отношении проверки логики базы данных, вы также можете проверить this out.

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

...