Spring/Spring-detail

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

YoonJong 2022. 11. 4. 10:38
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