본문 바로가기
Spring/Spring-detail

단위테스트(Unit Test) 를 작성하는 이유

by YoonJong 2022. 11. 4.
728x90

단위테스트는 하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위 테스트이다.

하나의 기능을 테스트하며, "어떤 기능을 실행하면 어떤 결과가 나온다" 라는 테스트를 진행한다.

 

장점  1. 의도한 대로 작동하는지 검증할 수 있다 2. 부수적으로 코드 변경에 의한 사이드 이펙트를 최대한 줄일 수 있는 예방책 3. 리팩토링으로 인한 코드 수정이 필요한 상황에서 유연하고 안정적인 대응

 

통합테스트는 서로 상호작용을 하는 서비스, 레포지토리 등 컴포넌트들이 구동된 상태에서 테스트를 진행하기 때문에,

비용이 상당히 커진다.

반면 단위테스트는 해당 부분만 독립적으로 테스트하기 때문에, 빠르게 실행하며 문제여부를 확인할 수 있다.

 

일반 애플리케이션은 1개의 기능을 처리하기 위해서는 다른 객체들과 서로 메시지를 주고받아야 하는데,

단위테스트에서는 이를 해결하기 위해 다른 객체 대신 가짜 객체(Mock Object)를 주입해 어떤 결과를 반환하라고 답변을 준비시킨다. -> stub 이라고 부른다

 

애플리케이션의 기능과 요구사항은 계속해서 변화한다.

실제 코드가 변경되면 에러, 버그가 발생할 수 있는데, 좋은 테스트코드가 있으면 변경된 코드를 검증해 해결할 수 있다.

 

테스트 작성할 경우에는 아래와 같이 지켜주는 것이 좋다

  • 1개의 테스트 함수에 대해 assert (검증) 을 최소화
  • 1개의 테스트 함수는 1가지 개념만 테스트

 

 

참고

https://mangkyu.tistory.com/143

 

[TDD] 단위 테스트(Unit Test) 작성의 필요성 (1/3)

1. 단위 테스트 vs 통합 테스트 차이 [ 단위 테스트(Unit Test) ] 단위 테스트(Unit Test)는 하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트이다. 여기서 모듈은 애플리케이션에

mangkyu.tistory.com

http://blog.hwahae.co.kr/all/tech/tech-tech/6274/

 

Unit Test 시작하기 – 화해 블로그 | 기술 블로그

Unit Test 단위 테스트는 우리가 작성한 코드가 의도한 대로 작동하는지 검증하기 위한 절차로 문제를 방지하는 기능도 있지만, 부수적으로 코드 변경에 의한 사이드 이펙트를 최대한 줄일 수 있

blog.hwahae.co.kr

 

728x90

댓글