반응형
- persist는 DB에 바로 저장되지 않고 commit이 하는 순간 JPA 영속성 콘텍스트가 있는 멤버객체가 insert문이 만들어짐
- Transactional : rollback 하기 때문에 commit 해서 DB결과를 볼 수 있음
1. @Rollback(false) - commit됨
@RunWith(SpringRunner.class) // 순수 단위테스트가 아닌 DB까지 JPA가 돌아가는 과정을 테스트하기 위함
@SpringBootTest
@Transactional
public class MemberServiceTest {
@Autowired MemberService memberService;
@Autowired MemberRepository memberRepository;
@Test
@Rollback(false)
public void 회원가입() throws Exception {
//given
Member member = new Member();
member.setName("kim");
//when
Long joinedId = memberService.join(member);
//then
assertEquals(member, memberRepository.findOne(joinedId));
}
}
2. em.flush(); - insert DB반영되지만 rollback됨
@RunWith(SpringRunner.class) // 순수 단위테스트가 아닌 DB까지 JPA가 돌아가는 과정을 테스트하기 위함
@SpringBootTest
@Transactional
public class MemberServiceTest {
@Autowired MemberService memberService;
@Autowired MemberRepository memberRepository;
@Autowired EntityManager em;
@Test
public void 회원가입() throws Exception {
//given
Member member = new Member();
member.setName("kim");
//when
Long joinedId = memberService.join(member);
//then
em.flush();
assertEquals(member, memberRepository.findOne(joinedId));
}
}
인프런 실전! 스프링 부트와 JPA 활용 1 - 회원서비스 테스트
반응형
'SPRING' 카테고리의 다른 글
[JPA] 동적 쿼리 조회 (파라미터로 받아올 때 처리) (0) | 2023.03.02 |
---|---|
[JPA] 테스트 코드 예외 처리 작성 법 try~catch문/@Test(expected = ~) (0) | 2023.02.19 |
[JPA] Reopository EntitiyManger 의존 관계 주입 (0) | 2023.02.17 |
Spring vs. Spring Boot: A Comparison of These Java Frameworks (0) | 2022.12.05 |
[maven project] pom.xml 첫 줄 unknown error (0) | 2022.11.07 |