Юнит-тестирование в Spring: вспомогательные классы
Spring включает ряд классов, которые могут помочь в модульном (юнит) тестировании. Они делятся на две категории:
- Утилиты общего тестирования
- Утилиты тестирования Spring MVC
Утилиты общего тестирования
Пакет org.springframework.test.util содержит несколько утилит общего назначения для использования в модульном и интеграционном тестировании.
ReflectionTestUtils - это набор служебных методов на основе отражения. Вы можете использовать эти методы в сценариях тестирования, где вам нужно изменить значение константы, установить не-публичное поле, вызвать не-публичный метод установки (сеттер) или вызвать не-публичный метод конфигурации или обратного вызова жизненного цикла при тестировании кода приложения для вариантов использования, таких как следующие:
- ORM фреймворки (такие как JPA и Hibernate), которые расположены использовать private или protected доступ к полям, в отличие от public методов установки для свойств в сущности домена.
- Spring поддерживает аннотации (такие как @Autowired, @Inject и @Resource), которые обеспечивают внедрение зависимостей для private или protected полей, методов установки и методов конфигурации.
- Использование аннотаций, таких как @PostConstruct и @PreDestroy, для методов обратного вызова жизненного цикла.
AopTestUtils - это набор служебных методов, связанных с AOP (Aspect Oriented Programming). Вы можете использовать эти методы для получения ссылки на базовый целевой объект, скрытый за одним или несколькими прокси Spring. Например, если вы настроили bean-компонент как динамический макет с помощью библиотеки, такой как EasyMock или Mockito, и макет завернут в прокси-сервер Spring, вам может потребоваться прямой доступ к базовому макету, чтобы настроить ожидания на нем и выполнить проверки.
Утилиты тестирования Spring MVC
Пакет org.springframework.test.web содержит ModelAndViewAssert, которую вы можете использовать в сочетании с JUnit, TestNG или любой другой структурой тестирования для модульных тестов, которые имеют дело с объектами Spring MVC ModelAndView.
Модульное тестирование контроллеров Spring MVC
Для модульного тестирования классов Spring MVC Controller как объектов POJO используйте ModelAndViewAssert в сочетании с MockHttpServletRequest, MockHttpSession и т.д. Из моков Spring's Servlet API. Для тщательного тестирования интеграции классов Spring MVC и REST Controller в сочетании с конфигурацией WebApplicationContext для Spring MVC используйте вместо этого Spring MVC Test Framework.
Читайте также:
- Модульное (юнит) тестирование в Spring
- Юнит-тестирование в Spring: mock объекты
- Пакет java.util.concurrent.atomic
Комментарии
Отправить комментарий