Spring Boot Testcontainer Статический или нет?JAVA

Программисты JAVA общаются здесь
Anonymous
Spring Boot Testcontainer Статический или нет?

Сообщение Anonymous »

Я хочу знать, как лучше всего определять тестовые контейнеры в Spring Boot.
Я видел разные версии их определения.

Код: Выделить всё

@TestConfiguration(proxyBeanMethods = false)
class TestcontainersConfiguration {

@Bean
@ServiceConnection
KafkaContainer kafkaContainer() {
return new KafkaContainer(DockerImageName.parse("apache/kafka-native:latest"));
}

}
Например, здесь контейнер определен следующим образом, и насколько я понимаю, это означает, что контейнер воссоздается для каждого теста? Или все еще существует один контейнер для всех тестов внутри тестового класса, помеченный @Import(TestcontainersConfiguration.class) ?
Другой вариант, который я часто вижу, определяет его следующим образом:

Код: Выделить всё

@Testcontainers
@SpringBootTest
public abstract class ContainerBase {

@ServiceConnection
static KafkaContainer kafka;

// Static block ensures container starts once for all tests
static {
kafka = new KafkaContainer(DockerImageName.parse("apache/kafka-native:latest"))

// Start the container once
kafka.start();
}
}
Какой из них предпочтительнее?

Подробнее здесь: https://stackoverflow.com/questions/798 ... tic-or-not

Вернуться в «JAVA»