본문 바로가기

Dev/Spring Boot

테스트에 사용하는 어노테이션

스프링 부트에서는 편리하게 테스트시 유용하게 해주는 어노테이션이 존재한다.

 

 

@SpringBootTest

  • 스프링 테스트 할 경우에는 부트에서는 이 어노테이션 하나로 해결할 수 있다!!
  • 참 편리하다 >.<

@Transactional

  • 디비의 트랜잭션과 같은 형태로 테스트 케이스에 붙게되면 각 테스트를 시행하기 전에 트랜잭션을 시작 수행이 끝나고나서 롤백(Rollback) 하는 작업을 수행해준다.
  • 이렇게 하면 데이터베이스에 수행한 데이터가 남지 않으므로 다음 테스트시 영향을 주지 않는다.
  • 즉, 테스트를 더 테스트답게 해주는 어노테이션이다.
  • 이 어노테이션이 서비스(Service) 같은 곳에 붙게되면 롤백하지않고 수행한다!! 테스트 케이스 파일에 붙었을때만 자동으로 수행하고나서 롤백하는 처리를 진행한다는점 기억하자!!!
@SpringBootTest
@Transactional
/**
 * @Transactional을 써주게되면
 * 디비의 트랜잭션처럼 한번 쭉 돌려주고나서 마지막에 롤백을 해준다.
 * 그렇기때문에 중복되서 데이터가 들어가는것을 막아준다.
 */
class MemberServiceIntegrationTest {

    @Autowired MemberService memberService;
    @Autowired MemberRepository memberRepository;