Minitest는 완전한 테스트 스위트를 제공하며, 여러 독립적인 컴포넌트로 구성되어 다양한 테스트 요구사항을 충족시킵니다.
Minitest의 주요 구성 요소
-
minitest/test: 작고 빠른 단위 테스트 프레임워크로, 명확하고 가독성 있는 테스트 작성을 위한 풍부한 어설션 세트를 제공합니다. 언어 구현자를 위한 깔끔한 구현을 목표로 하며, 테스트 케이스 발견에 ‘마법’이 없습니다.
-
minitest/spec: 기능적으로 완전한 스펙 엔진으로,
minitest/test와 연동하여 어설션을 스펙 기대치로 연결합니다. -
minitest/benchmark: 알고리즘 성능을 반복적으로 검증하여 성능 변화를 효과적으로 관리할 수 있게 합니다.
-
minitest/mock: Steven Baker가 개발한 작은 mock(및 stub) 객체 프레임워크로, 테스트 격리 및 의존성 주입에 유용합니다.
-
minitest/pride: 테스트 결과에 색상을 추가하여 가독성을 높입니다.
Minitest의 철학 및 RSpec과의 비교
Minitest는 Ruby가 이미 제공하는 클래스, 모듈, 상속 등 기본 기능을 재발명하지 않습니다. 이는 사용자가 Ruby만으로 Minitest를 활용할 수 있으며, 일반적인 객체 지향(OO) 관행이 그대로 적용됨을 의미합니다. Wayne E. Seguin은 Minitest가 ‘매우 읽기 쉽고 이해하기 쉽다’고 평가했으며, Piotr Szotkowski는 ‘한 번의 앉은 자리에서 전체를 읽을 수 있는 프레임워크’라고 칭찬했습니다. Adam Hawkins는 RSpec이 ‘테스팅 DSL’인 반면 Minitest는 ‘Ruby 그 자체’라고 강조하며, Minitest가 Ruby의 본질에 충실함을 보여줍니다.