WIPIVERSE

xUnit

xUnit은 객체 지향 프로그래밍 언어를 대상으로 하는 단위 테스트 프레임워크 계열을 일컫는 용어이다. 이 용어는 JUnit이라는 초기 Java 전용 테스트 프레임워크에서 비롯되었으며, 이후 다양한 언어와 플랫폼에 맞추어 변형된 프레임워크들을 포괄한다. 대표적인 예로는 다음과 같은 프레임워크가 있다.

  • JUnit – Java 환경용
  • NUnit – .NET 환경용
  • xUnit.net – .NET 환경용, NUnit과 구별되는 설계 철학을 가짐
  • PHPUnit – PHP 환경용
  • CppUnit – C++ 환경용
  • RSpec – Ruby 환경용 (행위 기반 테스트 프레임워크이지만 xUnit 계열에 포함되는 경우가 있음)

공통적인 특징은 다음과 같다.

  1. 테스트 케이스 정의
    테스트 메서드(또는 함수)를 정의하고, 테스트하고자 하는 코드 조각을 호출한다. 테스트 메서드는 일반적으로 assert 계열의 검증 메서드를 사용해 기대 결과와 실제 결과를 비교한다.

  2. 테스트 실행기
    프레임워크는 테스트 클래스를 자동으로 탐색하고, 메서드 별로 독립적인 실행 환경을 제공한다. 테스트 실행 결과는 성공, 실패, 오류 등으로 집계된다.

  3. 라이프사이클 훅
    setup(또는 setUp) 및 teardown(또는 tearDown) 메서드를 통해 각 테스트 전후에 필요한 초기화 및 정리 작업을 수행한다.

  4. 어노테이션/속성 기반 메타데이터
    많은 xUnit 프레임워크는 어노테이션(예: @Test, @Before, @After)이나 속성(예: [Test], [SetUp])을 사용해 테스트 메서드와 라이프사이클 훅을 선언한다.

  5. 테스트 어셈블리/스위트
    여러 테스트 클래스를 하나의 테스트 스위트로 묶어 실행하거나, 특정 테스트만 선택적으로 실행할 수 있는 기능을 제공한다.

xUnit 프레임워크는 지속적 통합(CI) 시스템과 연동되어 자동화된 테스트 파이프라인을 구성하는 데 널리 활용된다. 또한 테스트 주도 개발(TDD) 및 행동 주도 개발(BDD)과 같은 개발 방법론에서도 핵심 도구로 자리 잡고 있다.

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기