티스토리 뷰

Backend

UnitTest

뭉크테크 2026. 7. 6. 00:33

단위 테스트란 무엇인가?

  • 단위 테스트는 코드의 가장 작은 기능적 단위를 테스트하는 프로세스

특징

  • 코드 품질 보장을 위해 소프트웨어 개발의 필수 요소
  • 소프트웨어를 작은 기능적 단위로 작성한 다음 코드 단위별 단위 테스트를 작성하는 것이 소프트웨어 개발 모범 사례

단계

  1. 단위 테스트 코드(함수, 클래스 OR 메서드)를 선택
  2. 접근 방식 선택: 수동 테스트 OR 프레임워크를 이용한 자동화된 단위 테스트
  3. 테스트 환경 구축: test data, dependancy, mock objects 등 test를 실행하기위한 환경을 구축
    1. IDE(Integrated Development Environment) 를 활용하는 것이 필수
  4. 테스트 케이스 사용 및 생성
    1. 테스터는 테스팅 프레임워크와 테스트 케이스를 선택 및 실행한다면, 그 결과를 확인(버그가 있는지)
  5. 디버그 그리고 이슈 해결
    1. 테스트가 실패했다면, 버그의 근본 원인을 파악하고 코드를 디버깅한다. 
    2. 그리고 고친다.
    3. 테스터는 버그가 조치될 때까지 unit tests 를 실행해야한다.

Unit testing tools

특정 목적에 따라 필요한 도구를 가져다 쓰면 된다.

 

JUnit

  •  Java components 를 테스트하기 위한 자바 프레임워크이다.
  • 유닛 테스트 도구로 알려져 있지만,  integration testing and functional testing 으로도 쓰인다.
  • 자바 친화적 언어의 코드를 테스트하는데 가장 기본적으로 쓰이는 툴이다.

KoTest

  • 코틀린 친화적

Spock

  • Groovy 언어. 유연성과 대용량 테스트 기능 좋음

 

 

Test case 작성 패턴(given when then pattern)

https://www.j-labs.pl/en/tech-blog/given-when-then-pattern-in-unit-tests/

 

  • 정의: 우리가 어떤 기능(시스템 행위)를 사람이 이해하는 방식처럼 자연스럽고, 읽기 편하게 묘사한 템플릿
  • 사람들이 상상한 문제를 좀 더 human way 답게 정의
  • 메인 스탭
    • Given: 시스템에 데이터 입력 > 테스트 케이스에 파라미터로서 데이터 입력
    • When: 기대하는 행위 정의 > 테스트 케이스의 기대 행위
    • Then: 행위가 기대하는 대로 되었는지 검증 > 테스트 케이스의 결과가 기대하는 행위의 결과와 맞는지 검증
  • 예시
    •  

 

 

출처

https://www.ibm.com/think/topics/unit-testing

 

What is Unit Testing? | IBM

Unit testing is a test-driven development (TDD) method for evaluating software that pays special attention to an individual component or unit of code.

www.ibm.com

https://jestjs.io/

 

Jest

By ensuring your tests have unique global state, Jest can reliably run tests in parallel. To make things quick, Jest runs previously failed tests first and re-organizes runs based on how long test files take.

jestjs.io

https://www.j-labs.pl/en/tech-blog/given-when-then-pattern-in-unit-tests/

 

Given-When-Then pattern in unit tests | j‑labs

Learn the Given-When-Then pattern for unit tests with examples. Improve your testing process and create better acceptance criteria. Read more now!

www.j-labs.pl

 

'Backend' 카테고리의 다른 글

Observer Pattern  (0) 2026.08.03
Singleton Pattern  (0) 2026.08.03
Builder Pattern  (0) 2026.08.01
FactoryMethod Pattern  (0) 2026.07.30
java와 코틀린 차이  (0) 2026.06.25
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2026/08   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함