์คํ๋ง ์ปจํ ์ด๋์ DB๊น์ง ์ฐ๊ฒฐํ๋ ํตํฉ ํ ์คํธ ์งํํด๋ณด๊ธฐ!
package hello.hello_spring.service;
import hello.hello_spring.domain.Member;
import hello.hello_spring.repository.MemberRepository;
import hello.hello_spring.repository.MemoryMemberRepository;
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.transaction.annotation.Transactional;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertThrows;
@SpringBootTest
@Transactional //ํ
์คํธ์ผ์ด์ค์ @Transaction ์ด๋
ธํ
์ด์
์ ๋ถ์ด๋ฉด, ํ
์คํธ ์๋ฃ ํ ํ
์คํธ๋ฐ์ดํฐ Rollback ๊ธฐ๋ฅ(DB์ ๋ฐ์ดํฐ ์ ์ฅX)
class MemberServiceIntegrationTest {
@Autowired MemberService memberService;
@Autowired MemberRepository memberRepository;
@Test
void ํ์๊ฐ์
() {
//given
Member member = new Member();
member.setName("spring");
//when
Long saveId = memberService.join(member);
//then
Member findMember = memberService.findOne(saveId).get();
assertThat(member.getName()).isEqualTo(findMember.getName());
}
@Test
public void ์ค๋ณต_ํ์_์์ธ() {
//given
Member member1 = new Member();
member1.setName("spring");
Member member2 = new Member();
member2.setName("spring");
//when
memberService.join(member1);
assertThrows(IllegalStateException.class, () -> memberService
.join(member2));
}
}
- @SpringBootTest : ์คํ๋ง ์ปจํ ์ด๋์ ํ ์คํธ๋ฅผ ํจ๊ป ์คํํ๋ค
- @Transactional : ํ ์คํธ ์ผ์ด์ค์ ๋ถ์์ ๋, ํ ์คํธ ์์ ์ ์ ํธ๋์ญ์ ์ ์์ํ๊ณ , ํ ์คํธ ์๋ฃ ํ์ ํญ์ ๋กค๋ฐฑํ๋ค. ์ด๋ ๊ฒ ํ๋ฉด DB์ ๋ฐ์ดํฐ๊ฐ ๋จ์ง ์์ผ๋ฏ๋ก ๋ค์ ํ ์คํธ์ ์ํฅ์ ์ฃผ์ง ์๋๋ค.
** ๋จ์ ํ ์คํธ : ์ํํธ์จ์ด์ ๊ฐ์ฅ ์์ ๋จ์์ธ ๋ชจ๋, ํจ์, ํด๋์ค, ๋ฉ์๋ ๋ฑ์ ๊ฐ๋ณ์ ์ธ ๋จ์๋ฅผ ๋ถ๋ฆฌํ์ฌ ํ ์คํธ
** ํตํฉ ํ ์คํธ : ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชจ๋ ๊ตฌ์ฑ ์์๊ฐ ์์๋๋ก ํจ๊ป ์๋ํ๋์ง ํ์ธํ๋ ์ํํธ์จ์ด ํ ์คํธ
'๋ฐฑ์๋(Back-End) ๊ฐ๋ฐ > SpringBoot' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SpringBoot] 6.5_JPA (0) | 2025.02.26 |
---|---|
[SpringBoot] 6.4_์คํ๋ง JdbcTemplate (0) | 2025.02.26 |
[SpringBoot] 6.2_์์ JDBC (0) | 2025.02.26 |
[SpringBoot] 6.1_์คํ๋ง DB ์ ๊ทผ ๊ธฐ์ (H2) (0) | 2025.02.26 |
[SpringBoot] 5_ํ์๊ด๋ฆฌ-์น MVC ๊ฐ๋ฐ (0) | 2025.02.26 |