test디버깅

2023. 3. 26. 20:12카테고리 없음

 

컨트롤 f8을 하여 브레이크 포인트를 잡아 둔다 

 

그 후에 브레이크 포인트 ( 내가  잡은 브레이크 포인트에서 실행시에 멈춘다 ) 

그다음 부터 디버깅을 진행한다.

 

f8을 하면 ( step over)

다음 코드로 이동한다.

 

1. 브레이크 포인트를 잡아 둔다 .  단축키( ctrl+ F8)

2.  step over 다음 코드로 이동한다. 단축키( F8)

3. step into   단축키 (F7) 안에서 실행되는 메소드를 들어가서 확인 해볼수 있다 , 그러나 이걸 잘못 사용하게 될시에

저렇게 갑자기 이상한 흐름으로 빠지게 된다   이럴때는  step out  단축키(shitf + f8 ) 해서 해당 스택에서 , 실행시키고 나오면 된다   그러면 빠져온다.

 

4.user에 담긴 값들을 확인 가능하다 ,  variables 지역 스포크에 담겨있는 변수가 나온다.

 

5. TEST를 실행하기전에 setup해준다  moking을 통해서 

6.user를  저장하기전에 중복  email  체크를 한다 .

7.같은  user에 email 값이 있는 지 확인 하기 위해서 findByEmail()에 들어간다, 

여기서 mork 객체를 이용하여 "testFailed@email.com" user를 만들어서 리턴한다.

test@email.com이라는  user은 없다는 것을 확인 한다.

 

8. 다시  중복 emial 체크 하는 validateDuplicateUser(User user)메소드로 돌아온다 .

여기서  evaluate 단축키(alt + F8)을 켜서 현재 스코프에 할수있는 모든 메소드를 찍어 볼수있는데 ,

userRepository.findByEmail (" testFailed@emial.com  ") ;  실행하여 현재 해당 email의 user가 저장 되어있는지 확인 할수 있다. 

9. "test@email.com" user는 현재 userRepository에 저장 되어 있지 않은 user이며 , 중복된 email의 user가 없다는 것을 확인 한다.

10. user를 저장 한다.

11. mocking 객체인 UserRepository .save를 통해 user를 리턴한다.

 여기서 mocking을 하는 이유는 db까지 연결 하여 하는 통합 테스트 같은 경우는 실행시간이 오래걸리며 너무 무거운 테스트이다. 좋은 테스트는  테스트 하고자 하는 userService만 빠르게 확인해 볼수 있도록 하는 단위 테스트가 좋다.

12.검증 :현재 user객체의 email 과 저장 된 user의 email  값이 같은지 확인 한다.  

검증 까지 끝