Интеграционное тестирование в Spring: TestContext Framework, классы поддержки JUnit 4

Пакет org.springframework.test.context.junit4 предоставляет следующие классы поддержки для тестовых случаев на основе JUnit 4 (поддерживаются в JUnit 4.12 или выше):

  • AbstractJUnit4SpringContextTests
  • AbstractTransactionalJUnit4SpringContextTests

AbstractJUnit4SpringContextTests - это абстрактный базовый тестовый класс, который объединяет Spring TestContext Framework с явной поддержкой тестирования ApplicationContext в среде JUnit 4. Когда вы расширяете AbstractJUnit4SpringContextTests, вы можете получить доступ к защищенной переменной экземпляра applicationContext, которую вы можете использовать для выполнения явного поиска bean-компонентов или для проверки состояния контекста в целом.

AbstractTransactionalJUnit4SpringContextTests - это абстрактное транзакционное расширение AbstractJUnit4SpringContextTests, которое добавляет некоторые удобные функции для доступа JDBC. Этот класс ожидает, что bean-объект javax.sql.DataSource и bean-объект PlatformTransactionManager будут определены в ApplicationContext. Когда вы расширяете AbstractTransactionalJUnit4SpringContextTests, вы можете получить доступ к защищенной переменной экземпляра jdbcTemplate, которую можно использовать для запуска операторов SQL для запроса базы данных. Вы можете использовать такие запросы для подтверждения состояния базы данных как до, так и после выполнения кода приложения, связанного с базой данных, и Spring гарантирует, что такие запросы выполняются в рамках той же транзакции, что и код приложения. При использовании вместе с ORM-инструментом обязательно избегайте ложных срабатываний. AbstractTransactionalJUnit4SpringContextTests также предоставляет удобные методы, которые делегируют методы в JdbcTestUtils с помощью вышеупомянутого jdbcTemplate. Кроме того, AbstractTransactionalJUnit4SpringContextTests предоставляет метод executeSqlScript(..) для запуска SQL сценариев для настроенного источника данных.

Эти классы удобны для расширения. Если вы не хотите, чтобы ваши тестовые классы были привязаны к специфичной для Spring иерархии классов, вы можете настроить свои собственные тестовые классы, используя правила @RunWith(SpringRunner.class) или Spring JUnit.


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


Комментарии

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

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

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

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