Dev/Spring Boot
테스트에 사용하는 어노테이션
Okdol-Min
2020. 10. 3. 21:54
스프링 부트에서는 편리하게 테스트시 유용하게 해주는 어노테이션이 존재한다.
@SpringBootTest
- 스프링 테스트 할 경우에는 부트에서는 이 어노테이션 하나로 해결할 수 있다!!
- 참 편리하다 >.<
@Transactional
- 디비의 트랜잭션과 같은 형태로 테스트 케이스에 붙게되면 각 테스트를 시행하기 전에 트랜잭션을 시작 수행이 끝나고나서 롤백(Rollback) 하는 작업을 수행해준다.
- 이렇게 하면 데이터베이스에 수행한 데이터가 남지 않으므로 다음 테스트시 영향을 주지 않는다.
- 즉, 테스트를 더 테스트답게 해주는 어노테이션이다.
- 이 어노테이션이 서비스(Service) 같은 곳에 붙게되면 롤백하지않고 수행한다!! 테스트 케이스 파일에 붙었을때만 자동으로 수행하고나서 롤백하는 처리를 진행한다는점 기억하자!!!
@SpringBootTest
@Transactional
/**
* @Transactional을 써주게되면
* 디비의 트랜잭션처럼 한번 쭉 돌려주고나서 마지막에 롤백을 해준다.
* 그렇기때문에 중복되서 데이터가 들어가는것을 막아준다.
*/
class MemberServiceIntegrationTest {
@Autowired MemberService memberService;
@Autowired MemberRepository memberRepository;