본문 바로가기

강의 내용 정리/스프링 입문

통합테스트

통합테스트 : DB까지 연결해서 하는 테스트

단위테스트 : 순수한 자바코드로 최소한의 단위로 테스트

 

대부분 단위테스트가 더 좋은 테스트 ( 보통은 스프링 컨테이너 안올리는 단위테스트가 더 좋음 )

테스트는 항상 가장 쉬운 방법으로 ( 필드 주입 ) , SpringConfig에서 스프링컨테이너에 올려둔다.

통합테스트 할 때는 스프링이 뜸, 테스트 끝나면 스프링 내려감

 

테스트는 반복가능해야함.

그러나 회원가입() 한번 실행하면 "spring"이 DB에 들어가 있다. -> 다시 실행시 fail뜸

 

해결법

1) AfterEach 작성

2) 테스트 끝나고 롤백(db에 데이터 반영(commit)X)

DB는 기본적으로 트랜젝션.

DB에 insert query하고 commit해야 DB에 반영됨. ( 평소는 autocommit 모드 )

-> @Transactional 를 테스트케이스에 달면 테스트를 실행할 때 트렌젝션을 먼저 실행하고 테스트 끝나면 롤백 

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

 

 

 

 

 

 

 

 

출처 : 인프런 김영한님의 강의를 수강 후 정리한 내용입니다.

 

 

 

 

꾸준히 다시보자.

 

1. 220712

2. 220731

Recent Posts
Popular Posts
Recent Comments