Юнит-тестирование в 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.


Читайте также:


Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки