From 03720662bef1e60e587e6f5678141ebfcbe381ea Mon Sep 17 00:00:00 2001 From: haerong22 Date: Tue, 28 Jun 2022 01:22:59 +0900 Subject: [PATCH] #13 spring db: test - detach test db & rollback --- .../domain/ItemRepositoryTest.java | 24 +++++++++++++++++++ .../src/test/resources/application.properties | 3 +++ 2 files changed, 27 insertions(+) diff --git a/spring-db/src/test/java/hello/itemservice/domain/ItemRepositoryTest.java b/spring-db/src/test/java/hello/itemservice/domain/ItemRepositoryTest.java index 2c554112..7f71b02c 100644 --- a/spring-db/src/test/java/hello/itemservice/domain/ItemRepositoryTest.java +++ b/spring-db/src/test/java/hello/itemservice/domain/ItemRepositoryTest.java @@ -5,28 +5,52 @@ import hello.itemservice.repository.ItemSearchCond; import hello.itemservice.repository.ItemUpdateDto; import hello.itemservice.repository.memory.MemoryItemRepository; import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.annotation.Commit; +import org.springframework.test.annotation.Rollback; +import org.springframework.transaction.PlatformTransactionManager; +import org.springframework.transaction.TransactionStatus; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.support.DefaultTransactionDefinition; import java.util.List; import static org.assertj.core.api.Assertions.assertThat; +@Transactional @SpringBootTest class ItemRepositoryTest { @Autowired ItemRepository itemRepository; +// @Autowired +// PlatformTransactionManager transactionManager; +// +// TransactionStatus status; + +// @BeforeEach +// void beforeEach() { +// // 트랜잭션 시작 +// status = transactionManager.getTransaction(new DefaultTransactionDefinition()); +// } + @AfterEach void afterEach() { //MemoryItemRepository 의 경우 제한적으로 사용 if (itemRepository instanceof MemoryItemRepository) { ((MemoryItemRepository) itemRepository).clearStore(); } + + // 트랜잭션 롤백 +// transactionManager.rollback(status); } +// @Commit +// @Rollback(value = false) @Test void save() { //given diff --git a/spring-db/src/test/resources/application.properties b/spring-db/src/test/resources/application.properties index cac99c3d..49141a38 100644 --- a/spring-db/src/test/resources/application.properties +++ b/spring-db/src/test/resources/application.properties @@ -1,4 +1,7 @@ spring.profiles.active=test +spring.datasource.url=jdbc:h2:tcp://localhost/~/testcase +spring.datasource.username=sa + #jdbcTemplate sql log logging.level.org.springframework.jdbc=debug \ No newline at end of file