Что такое модульное тестирование
Модульное тестирование - это написание кода (т.е. тестового кода), который передает известные входные данные в тестируемый код, а затем проверка тестируемого кода возвращает ожидаемые выходные данные.Это самое детальное тестирование, которое вы можете выполнить в приложении.Чтобы сделать это проще, обычно используется среда модульного тестирования.Для Java JUnit является самым популярным, но TestNG также примечателен.
Начало работы
Фреймворки модульного тестирования предоставляют инструменты для выполнения тестов, валидации и составления отчетов о результатах.Для вашей настройки Eclipse имеет встроенную поддержку JUnit .Eclipse может автоматически обнаруживать тесты, компилировать тесты и тестируемый код, выполнять тесты и сообщать результаты в среде IDE.Кроме того, об ошибках сообщается как информация трассировки стека, активируемая щелчком мыши, которая загружает соответствующий файл с заданным номером строки.
Поддельные объекты
То, что вы также работаете с Hibernate, предлагает вам также исследовать структуру поддельных объектов - например, jMock .Поддельные объекты обычно заменяются как часть кода в составе тестов и служат двум целям: (1) возвращать известные выходные данные и (2) записывать, что они были вызваны, и каким образом модульные тесты могут анализировать эту информацию как часть проверки.
Возможность использовать объекты Mock для упрощения тестирования основана на внедрение зависимостей .Это другие объекты, которые составляют тестируемый объект.Идея состоит в том, чтобы отделить зависимости (например, Hibernate), чтобы сосредоточиться на тестировании алгоритмов, которые манипулируют теми данными, с которыми вы работаете.
База данных
Однако, если у вас есть код, который нелегко с рефакторингом , или, возможно, вы хотите проверить код базы данных, вы также можете протестировать взаимодействие Hibernate.,В этом случае вы хотите базу данных в известном состоянии.На ум приходят три подхода:
- Восстановление резервной копии базы данных в начале каждого выполнения теста.
- Использование dbunit , который предоставляет собственные механизмы для поддержания состояния,
- Транзакционная блокировка с откатом.Обернуть весь случай обернутым
try{} finally{}
, где последний всегда откатывает транзакцию.