application test : testcontainers - 기능

This commit is contained in:
haerong22
2021-02-27 23:48:09 +09:00
parent 808ac8a653
commit cec6d7cedc

View File

@@ -3,6 +3,7 @@ package com.example.apptest.study;
import com.example.apptest.domain.Member;
import com.example.apptest.domain.Study;
import com.example.apptest.member.MemberService;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.*;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
@@ -10,7 +11,10 @@ import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
import org.testcontainers.containers.GenericContainer;
import org.testcontainers.containers.PostgreSQLContainer;
import org.testcontainers.containers.output.Slf4jLogConsumer;
import org.testcontainers.containers.wait.strategy.Wait;
import org.testcontainers.junit.jupiter.Container;
import org.testcontainers.junit.jupiter.Testcontainers;
@@ -26,17 +30,32 @@ import static org.mockito.Mockito.times;
@ExtendWith(MockitoExtension.class)
@ActiveProfiles("test")
@Testcontainers
@Slf4j
public class StudyServiceSpringBootTest {
@Mock MemberService memberService;
@Autowired StudyRepository studyRepository;
@Container
static PostgreSQLContainer<?> postgreSQLContainer =
new PostgreSQLContainer<>().withDatabaseName("studytest");
static GenericContainer<?> postgreSQLContainer =
new GenericContainer<>("postgres")
.withEnv("POSTGRES_DB", "studytest");
@BeforeAll
static void beforeAll() {
Slf4jLogConsumer logConsumer = new Slf4jLogConsumer(log);
postgreSQLContainer.followOutput(logConsumer);
}
// @Container
// static PostgreSQLContainer<?> postgreSQLContainer =
// new PostgreSQLContainer<>().withDatabaseName("studytest");
@BeforeEach
void beforeEach() {
System.out.println("==========================");
System.out.println(postgreSQLContainer.getMappedPort(5432));
System.out.println("==========================");
System.out.println(postgreSQLContainer.getLogs());
studyRepository.deleteAll();
}