개발 & 방법론/DDD

테스트를 통한 코드 보호

loop-study 2021. 10. 15. 19:55

레거시 코드, 빈약한 모델 구조의 프로젝트를 파악하기란 무척이나 어렵다.

레거시 코드를 리팩토링하는 건 더 어렵다.

어떻게 리팩토링을 시작해야 할까?

최선의 방법은 테스트 코드다.


테스트 코드란?

기능을 검증하는 코드를 테스트 코드라 한다. 

테스트에는 단위 테스트, 통합 테스트, 인수 테스트가 있다.

- 단위 테스트 : 기능 별로 테스트 진행, 필요한 부분만 따로 진행할 수 있다.

- 통합 테스트 : 외부 모듈을 묶어서 진행, 단위 테스트에서 발견하지 못한 에러를 발견할 수 있다.

- 인수 테스트 : 시스템을 대상으로 검증, 최대한 운영과 흡사한 환경에서 진행한다.

 

레거시에 테스트 코드를 작성하는 이유?

테스트 코드를 통해 레거시의 여러 가지를 파악할 수 있다.

- 도메인 파악 : 레거시 코드를 통해 무엇을 얻고자 하는지 파악한다. 

- 모듈화 단서 : 거대한 덩어리를 어떻게 분해할지 단서가 보인다. 

- 변경의 여파 파악 : 작성된 테스트 코드를 통해 어디까지 영향을 끼치는지 알 수 있다.

 

테스트 도구

테스트 코드를 작성하기 위해선 JUnit과 Mockito를 사용한다.

- JUnit : 단위 테스트를 지원하는 프레임워크, 기능 검증에 사용된다.

- Mockito : Mock을 지원하는 프레임워크, 행위 검증에 사용된다.

 


간단히 테스트 코드 개념을 알아봤다.

다음에는 JUnit, Mockito 사용방법을 알아보자.

 

JUnit5 알아보기

인텔리제이를 사용하는 자바 개발자가 90% 이상 사용한다는 JUnit을 간단히 알아보러 한다. 자세한 내용은 공식 가이드를 참고하기 바란다. JUnit 5 JUnit이란? JUnit은 자바 프로그래밍 언어용 유닛 테

loopstudy.tistory.com

 

Mockito 알아보기 (부제 : BDD)

테스트 코드 입문자라면 겪어보는 문제 테스트 코드를 작성한지 얼마 안 되었을 때 의존성이 있는 객체의 테스트 코드를 작성하면서, 의존하는 객체의 실제 인스턴스를 생성해서 진행한 적이

loopstudy.tistory.com

 

* 주관적인 글이니 잘못된 내용이 있으면 댓글 부탁드립니다.

 

참고자료

NEXTSTEP, DDD 세레나데