λ°±μλ(Back-End) κ°λ°/SpringBoot
[SpringBoot] 6.3_μ€νλ§ ν΅ν© ν μ€νΈ (DBμ°κ²°)
rabo93
2025. 2. 26. 02:23
μ€νλ§ μ»¨ν μ΄λμ 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μ λ°μ΄ν°κ° λ¨μ§ μμΌλ―λ‘ λ€μ ν μ€νΈμ μν₯μ μ£Όμ§ μλλ€.
** λ¨μ ν μ€νΈ : μννΈμ¨μ΄μ κ°μ₯ μμ λ¨μμΈ λͺ¨λ, ν¨μ, ν΄λμ€, λ©μλ λ±μ κ°λ³μ μΈ λ¨μλ₯Ό λΆλ¦¬νμ¬ ν μ€νΈ
** ν΅ν© ν μ€νΈ : μ ν리μΌμ΄μ μ λͺ¨λ κ΅¬μ± μμκ° μμλλ‘ ν¨κ» μλνλμ§ νμΈνλ μννΈμ¨μ΄ ν μ€νΈ