이전 테스트와 달리 본 포스팅에서는 Spring Container에서 Repository(Database)와 Service를 가져와서 테스트하도록 한다.
먼저 class에 @SpringBootTest, @Transactional 어노테이션을 생성한다. 그리고 새로 memberSer vice와 memberRepository를 생성하는 것이 아니라 @Autowired를 통해 Spring Container 가져오도록 한다.
@SpringBootTest
@Transactional
public class MemberServiceIntegrationTest {
@Autowired MemberService memberService;
@Autowired MemberRepository memberRepository;
@Test
void 회원가입() {
// given
...
}
...
}
# @SpringBootTest
스프링 컨테이너와 테스트를 함께 시작한다.
# @Transactional
Test를 시작하기 전에 Transaction을 먼저 실행하고, DB에 데이터를 Insert하여 넣은 후 테스트가 종료되면 롤백하여 DB에 넣었던 데이터가 반영이 되지 않고 다 지워지도록 한다. 이를 통해 다음 테스트에 영향 없이 반복하여 테스트를 실행할 수 있도록 한다.
cf) 만약 DB에 데이터를 넣거나 어떤 프로세스를 저장하고 싶으면 @Commit을 붙이면 롤백하지 않는다.
'🌱 Spring > 회원 관리 예제' 카테고리의 다른 글
[Spring] 스프링 데이터 JPA (0) | 2023.07.08 |
---|---|
[Spring] JPA (0) | 2023.07.08 |
[Spring] 웹 UI 및 비즈니스 로직(가입, 조회) 연결 (0) | 2023.07.05 |
[Spring] Spring Bean과 의존 관계 (0) | 2023.07.05 |
[Spring] 회원 서비스 테스트(Dependency Injection) (0) | 2023.07.05 |