application test : testcontainers - 컨테이너 정보 사용
This commit is contained in:
@@ -9,8 +9,14 @@ import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.boot.test.util.TestPropertyValues;
|
||||
import org.springframework.context.ApplicationContextInitializer;
|
||||
import org.springframework.context.ConfigurableApplicationContext;
|
||||
import org.springframework.core.env.Environment;
|
||||
import org.springframework.test.context.ActiveProfiles;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.testcontainers.containers.GenericContainer;
|
||||
import org.testcontainers.containers.PostgreSQLContainer;
|
||||
import org.testcontainers.containers.output.Slf4jLogConsumer;
|
||||
@@ -31,10 +37,13 @@ import static org.mockito.Mockito.times;
|
||||
@ActiveProfiles("test")
|
||||
@Testcontainers
|
||||
@Slf4j
|
||||
@ContextConfiguration(initializers = StudyServiceSpringBootTest.ContainerPropertyInitializer.class)
|
||||
public class StudyServiceSpringBootTest {
|
||||
|
||||
@Mock MemberService memberService;
|
||||
@Autowired StudyRepository studyRepository;
|
||||
@Autowired Environment environment;
|
||||
@Value("${container.port}") int port;
|
||||
|
||||
@Container
|
||||
static GenericContainer<?> postgreSQLContainer =
|
||||
@@ -55,7 +64,10 @@ public class StudyServiceSpringBootTest {
|
||||
System.out.println("==========================");
|
||||
System.out.println(postgreSQLContainer.getMappedPort(5432));
|
||||
System.out.println("==========================");
|
||||
System.out.println(postgreSQLContainer.getLogs());
|
||||
System.out.println(environment.getProperty("container.port"));
|
||||
System.out.println("==========================");
|
||||
System.out.println(port);
|
||||
// System.out.println(postgreSQLContainer.getLogs());
|
||||
studyRepository.deleteAll();
|
||||
}
|
||||
|
||||
@@ -63,4 +75,12 @@ public class StudyServiceSpringBootTest {
|
||||
void test_51() {
|
||||
System.out.println("테스트 완료!!");
|
||||
}
|
||||
|
||||
static class ContainerPropertyInitializer implements ApplicationContextInitializer<ConfigurableApplicationContext> {
|
||||
@Override
|
||||
public void initialize(ConfigurableApplicationContext context) {
|
||||
TestPropertyValues.of("container.port=" + postgreSQLContainer.getMappedPort(5432))
|
||||
.applyTo(context.getEnvironment());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user