2015-07-13 4 views
-3

Я работаю над проектом JPA, и хочу иметь модульные тесты (хотя в качестве базы данных требуется, в этом случае это будет больше как интеграционные тесты.)Лучший способ проверить JPA?

Каков наилучший способ протестировать проект JPA? jUnit может это сделать? Есть ли другой лучший способ?

Большое спасибо

+3

Ваш вопрос слишком общий. Задайте конкретную проблему. Что вы подразумеваете под тестированием проекта JPA. Mocking EntityManager или что-то еще? – Bevor

+0

и помимо этих проблем с вашим «вопросом» вы не определили «лучший». Не место для таких вопросов ... –

+0

Спасибо за ваши ответчики. Тестирование проекта JPA Я имею в виду тестирование DAO, тестирование того, что добавление сущностей в базу данных в порядке, схема правильная и т. Д., А для «наилучшего» я ​​имею в виду самое простое решение, потому что раньше я никогда не использовал jUnit! Еще раз спасибо – TER

ответ

2

Вы дали ограниченную информацию об инструментах/каркасов вы используете, и очень общий вопрос, но я дам быстрый ответ на вопросы, которые вы поднять. Тем не менее, это лишь указатели, так как я считаю, что вам нужно сделать немного больше работы на ногах, чтобы вы могли понять, что лучше всего подходит для вашего конкретного проекта.

Junit позволяет настраивать методы класса с помощью определенных параметров и проверять возвращаемые значения. Возвращаемые значения могут быть сущностью, которая должна иметь определенное поле при определенных значениях, список объектов с определенными ожидаемыми значениями полей, исключениями и т. Д. И т. Д. (Какими бы ни были ваши методы). Вы можете запустить свой тест, пока вы вводите новые функции, и повторно запускайте их для проверки регрессии по мере продолжения разработки. Вы можете легко протестировать кейсы и не номинальные вещи. Получение Junit в Java SE/EE довольно прямолинейно, так что это может быть хорошим вариантом для вас, чтобы вы влились в тестирование. Это один из самых быстрых способов использования новых функций.

Spring/MVC - Использование структуры MVC, безусловно, может быть полезно. Я использовал JSF/Primefaces. Но это главным образом потому, что приложение должно быть JSF-приложением, и такие тесты разработки дали уверенность, что слой «Модель» предоставил то, что было необходимо для остальной части фреймворка. Таким образом, это обеспечивает некоторую уверенность в уровнях модели/JPA/DB (конечно, приятно видеть данные, которые поставляются), но не обеспечивает гибкое, проворное и целевое тестирование, которое вы можете ожидать от Junit.

Я думаю, что Dbunit может быть чем-то посмотреть, когда вы достигли определенного прогресса с JUnit. См http://dbunit.sourceforge.net/

DbUnit является расширением JUnit (также можно использовать с Ant), направленных на проектов на основе баз данных, которые, среди прочего, ставит свою базу данных в известное состояние между тестовых прогонов. Это отличный способ: избежать множества проблем, которые могут возникнуть, когда один тестовый пример развращает базу данных и приводит к сбоям в последующих тестах или усугубляет ущерб.

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