SpringBoot

[SpringBoot] 스프링 통합 테스트

hyeseo 2022. 12. 15. 10:46
스프링 통합 테스트

 

참고 : https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/unit/49595

 

📌 스프링 통합 테스트


- 스프링 컨테이너와 DB까지 연결한 통합 테스트 입니다.

- 테스트는 반복 할 수 있어야 합니다.

- 스프링 컨테이너 없이 테스트를 할 땐 단위 테스트로 합니다.

 

 

☘️ 스프링 통합 테스트 코드 작성하기


1. 기존 단위 테스트가 작성되어 있다면 복사하여 클래스 이름만 변경합니다.

 - 없다면 단축키 : cmd + shift + t  > Create New Test를 선택하여 테스트 클래스를 생성합니다.

 

2.스프링 통합 테스트 애노테이션을 작성합니다.

@SpringBootTest : 스프링 컨테이너와 테스트를 함께 실행합니다.
@Transactional : 테스트 케이스에 이 애노테이션이 있으면, 테스트 시작 전에 트랜잭션을 시작하고, 테스트 완료 후에 항상 롤백합니다.이렇게 하면 DB에 데이터가 남지 않으므로 다음 테스트에 영향을 주지 않는다. (테스트를 반복할 수 있습니다.)

@SpringBootTest
@Transactional
class MemberServiceIntegrationTest {

    @Autowired
    MemberService memberService;

    @Autowired
    MemberRepository memberRepository ;
    
    ...

3. 스프링 통합 테스트를 합니다.

스프링 통합 테스트 결과 화면

 

속도 비교를 위해 단위테스트도 실행합니다.

단위테스트 결과 화면

 

단위테스트 속도가 훨씬 빠른걸 확인 할 수 있습니다.