단위 테스트 - TestCode (2)공부방2023. 6. 27. 05:09
Table of Contents
728x90
728x90
서론
본 포스팅은 아래의 인강을 듣고, 추가 공부가 필요한 내용들을 포함하여 정리한 포스팅입니다.
단위 테스트(Unit test)
단위 테스트(Unit test - 위키백과)
컴퓨터 프로그래밍에서 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차다. 즉, 모든 함수와 메소드에 대한 테스트 케이스(Test case)를 작성하는 절차를 말한다. 이를 통해서 언제라도 코드 변경으로 인해 문제가 발생할 경우, 단시간 내에 이를 파악하고 바로 잡을 수 있도록 해준다. 이상적으로, 각 테스트 케이스는 서로 분리되어야 한다. 이를 위해 가짜 객체(Mock object)를 생성하는 것도 좋은 방법이다. 유닛 테스트는 (일반적인 테스트와 달리) 개발자(developer) 뿐만 아니라 보다 더 심도있는 테스트를 위해 테스터(tester)에 의해 수행되기도 한다.
단위 테스트(Unit Test)는 하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트를 말하며, 여기서의 모듈은 App에서 작동하는 하나의 기능( ≒ Class) 또는 메서드라 말할 수 있는 작은 코드 단위이다.
단위 테스트의 이유
아래의 이유들 때문에 단위 테스트를 실무에서 선호하며, 테스트 코드를 수시로 빠르게 돌리면서 문제를 파악할 수 있다.
TDD(Test Driven Development - 테스트 주도 개발) 또한 단위 테스트를 의미한다.
- 하나의 기능, 또는 메서드 부분만 독립적으로 테스트할 수 있어, 문제의 빠른 파악이 가능하다.
- 테스트를 진행하는 데 있어 시간과 비용을 절감할 수 있다.
- 리팩토링 시 안정성을 확보할 수 있다.
- 코드에 대한 문서가 될 수 있다.
단위 테스트의 규칙(First)
- Fast : 테스트는 빠르게 동작하여 자주 돌릴 수 있어야 한다.
- Independent : 각각의 테스트는 독립적이며 서로 의존해서는 안된다.
- Repeatable : 어느 환경에서도 반복이 가능해야 한다.
- Self-Validationg : 테스트는 성공 또는 실패로 bool 값으로 자체적으로 검증되어야 한다.
- Timely : 테스트는 테스트하려는 실제 코드를 구현하기 직전에 구현해야 한다.
또한 테스트를 작성 시에는 아래 사항들을 준수하는 것이 좋다.
실제 코드가 변경되면 테스트 코드 역시 변경이 필요할 수 있기 때문에 테스트 코드를 가독성 있게 작성해야 한다.
1개의 테스트 함수에 대해 assert를 최소화해야 한다.
1개의 테스트 함수는 1가지 개념만 테스트해야 한다.
Stub
일반적으로, App의 1개의 기능을 처리하기 위해서는, 다른 객체들과 메세지를 주고 받아야 한다. 하지만 단위 테스트는 해당 모듈에 대한 독립적인 테스트를 진행해야 한다. 그렇기 때문에 가짜 객체(Mock Object)를 주입하여 return값을 지정해주어야 하는데, 이를 stub라고 한다.
참조
관련 포스팅
단위 테스트 - TestCode (2)
728x90
300x250
@mag1c :: 꾸준히 재밌게
2023.04 ~ 백엔드 개발자의 기록
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!