All Downloads are FREE. Search and download functionalities are using the official Maven repository.

dev.vality.testcontainers.annotations.postgresql.PostgresqlTestcontainer Maven / Gradle / Ivy

package dev.vality.testcontainers.annotations.postgresql;

import dev.vality.testcontainers.annotations.DefaultSpringBootTest;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.boot.test.context.SpringBootTest;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Аннотация {@code @PostgresqlTestcontainer} подключает и запускает тестконтейнер
 * {@link org.testcontainers.containers.PostgreSQLContainer}, также
 * настройки контейнера будут проинициализированы в контекст тестового приложения
 * 

Аннотация не требует дополнительной конфигурации *

Пример использования в коде — в * magista *

Примеры

*

В примере ниже {@link PostgresqlTestcontainer} подключается напрямую * к {@link SpringBootTest} для проведения теста DAO слоя, при котором идет запись и чтение данных из базы данных *

 {@code
 * @PostgresqlTestcontainer
 * @SpringBootTest
 * public class AdjustmentDaoTest {
 *
 *     @Autowired
 *     private AdjustmentDao adjustmentDao;
 *
 *   ...
 * }}
*

В примере ниже {@link PostgresqlTestcontainer} подключается к * {@link DefaultSpringBootTest}, * таким образом создается удобная обертка, которую можно использовать для набора тестов *

 {@code
 * @Target({ElementType.TYPE})
 * @Retention(RetentionPolicy.RUNTIME)
 * @PostgresqlTestcontainer
 * @DefaultSpringBootTest
 * public @interface PostgresqlSpringBootITest {
 *
 * }}
*
 {@code
 * @PostgresqlSpringBootITest
 * public class AdjustmentDaoTest {
 *
 *     @Autowired
 *     private AdjustmentDao adjustmentDao;
 *     ...
 * }}
* * @see PostgresqlTestcontainerSingleton @PostgresqlTestcontainerSingleton * @see ExtendWith @ExtendWith * @see PostgresqlTestcontainerExtension PostgresqlTestcontainerExtension * @see org.testcontainers.containers.PostgreSQLContainer PostgreSQLContainer * @see DefaultSpringBootTest @DefaultSpringBootTest */ @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @ExtendWith(PostgresqlTestcontainerExtension.class) public @interface PostgresqlTestcontainer { /** * Аналогичный параметр как у аннотации {@link SpringBootTest#properties()} *

* пример — properties = {"postgresql.make.happy=true",...} */ String[] properties() default {}; }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy