ppx_expect, ppx_inline_test, Alcotest, OUnit2OCaml에는 여러 가지 테스트 프레임워크가 있으며, 사용 방식과 특징이 다릅니다.
아래에서 ppx_expect, ppx_inline_test, Alcotest, OUnit2 네 가지를 비교하겠습니다.
| 테스트 프레임워크 | 스타일 | 주요 특징 | 장점 | 단점 |
|---|---|---|---|---|
ppx_expect |
Snapshot Testing | 출력 기반 테스트 ([%expect]) |
쉽고 직관적, 결과 검증 용이 | 출력이 변하면 테스트 실패 |
ppx_inline_test |
Inline Testing | 코드에 직접 테스트 삽입 (let%test) |
간단한 코드 테스트에 적합 | 복잡한 테스트 어려움 |
Alcotest |
Structured Testing | 명확한 구조 & 컬러 출력 | CLI 친화적, 보편적인 유닛 테스트 | 비교적 설정이 필요함 |
OUnit2 |
xUnit 스타일 | JUnit 스타일 (assert 기반) | 전통적인 테스트 방식 | 설정이 필요하고 다소 무거움 |
각 프레임워크에서 덧셈 함수 (add x y) 에 대한 테스트 코드를 예시로 들어 비교하겠습니다.
ppx_expect (Snapshot Testing)출력(print_endline)을 기반으로 한 테스트 방식.
let add x y = x + y;;
let%expect_test "add test" =
print_int (add 2 3);
[%expect {| 5 |}]
;;
🚀 특징
[%expect]을 사용하여 출력값을 스냅샷으로 저장.✅ 장점