본문 바로가기
TIL : Today I learned (or Week)

TIL 230823 : 테스트 코드 0 - 마음 다 잡고 준비하기.

by 우인입니다 2023. 8. 27.

https://thiswooin.tistory.com/71

 

TIL 230804 : 테스트 코드의 막막함.

Test 코드 짜면서 수정한 부분 : 테스트 코드의 중요성을 깨달으며 조금씩 리팩토링하며 연습중인데, 초반에 쏟아지는 어노테이션들과 혼재된 강의와 정보속에서 또다시 엄청난 퍼즐맞추기의 시

thiswooin.tistory.com

 

그동안 테스트코드의 중요성에 대해서 너무나 많이 익히 들어왔다.

 

하지만 이전 TIL에도 적혀있듯 테스트코드의 어설픈 실습과 스프링 환경에서의 Bean객체에 대한 어색함 때문에 굉장히 여러 지식들이 혼잡하게 섞여있다.

 

지난 번 리팩토링 과제에서 테스트코드를 제대로 수행해내지 못 했고, 마음 속 과제로 남아있었다.

 

그래서 이번 팀과제에서 테스트 코드 파트를 도맡았고, 이에 튜터님에게도 공부하기 전 코멘트를 들을 수 있었고

이제 공부한 기록들을 남겨보려 한다.

 


현재 상황

  • 여러 어노테이션들이 너무 헷갈리게 섞여있음.
  • JUnit, Mockito를 동시에 배우다가 어설프게 섞였음.
  • TDDMockito까지 해보려다 더 엉킴.
  • 스프링환경에서의 세팅의 특수성에 당황스러움. 빈객체 다루기.
  • Mock객체에 대한 이해 부족

 

 

튜터님의 코멘트

  • TDD를 지향하고 개발을 직접 해봐라.
     : 물론 현업에서도 100% 힘들수도 있지만 이걸 지향하는 것과 처음부터 타협하는 것은 다르다.
  • 우선 단위테스트 먼저 공부를 하고, 통합테스트는 이후에 도전하자.
  • 자주 쓰이는 어노테이션이 몇개 있고, 우선 사용하다보면 특수한 케이스에 필요한 어노테이션은 없을까 하는 시점이 온다. 그 때 심화학습하는 것이 자연스러울 것이다.
  • 테스트용 DB에 대한 고민도 필요하다. (h2 인메모리의 예시를 들음)
  • 요즘은 가독성 측면에서 BDDMockito를 사용하기도 한다.
  • 성공한 케이스만 테스트하는 것이 아닌 발생할 수 있는 모든 케이스를 처리해야 한다.
    테스트 커버리지라는 용어도 이 때 등장. 100%를 지향하며 예외에 대한 케이스까지 공부하자.

 

계획

우선 단위테스트에 집중.

너무 많은 것들을 한번에 배워서 혼란스러웠으니, 차근차근 JUnit부터 시작해서 Mockito -> BDDMockito로 리팩토링 해본다.

 

  1. 단위테스트, 통합테스트 실전예시 차이 숙지.
  2. JUnit 공부
  3. Mockito 도입
  4. BDDMockito 리팩토링