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

Пакет org.springframework.test.context.testng предоставляет следующие классы поддержки для тестовых случаев на основе TestNG:

  • AbstractTestNGSpringContextTests
  • AbstractTransactionalTestNGSpringContextTests

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

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

Эти классы удобны для расширения. Если вы не хотите, чтобы ваши тестовые классы были привязаны к специфичной для Spring иерархии классов, вы можете настроить свои собственные тестовые классы с помощью @ContextConfiguration, @TestExecutionListeners и т.д., а также вручную инструментируя свой тестовый класс с помощью TestContextManager.


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


Комментарии

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

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

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

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