TL;DR

  • Testbox는 시스템에 Lua를 설치하지 않아도 Lua로 테스트를 작성하고 실행할 수 있는 의존성 없는 테스트 러너임.
  • API 테스트용 기능이 내장돼 있으며, 백그라운드 서버 실행과 HTTP 요청을 테스트에 활용함.
  • 테스트는 test와 expect_equal로 작성하며, 성공·실패 결과와 값의 불일치를 출력함.
  • cargo install testbox로 설치하거나 릴리스 페이지에서 컴파일된 실행 파일을 내려받을 수 있음.
  • API와 명령줄 도구 테스트에 활용할 수 있고, 라이선스는 MIT임.

설치

  • 시스템에 cargo와 rust가 있으면 cargo install testbox로 설치하고 testbox --version으로 버전을 확인함.
  • 그렇지 않으면 릴리스 페이지에서 컴파일된 실행 파일을 내려받을 수 있음.

예제

  • testbox -에 Lua 테스트 코드를 입력해 실행함. 첫 번째 예제는 2와 1 + 1이 같은지 확인하고, 두 번째 예제는 1과 2가 다르면 실패 결과와 실제·기대 값을 출력함.
  • API 테스트에서는 exec_bg로 npm run dev를 백그라운드에서 실행하고, 표준 출력에 Server is ready가 나타날 때까지 기다림. 이어 fetch로 http://localhost:3000/api/users에 GET 요청을 보내고 첫 번째 사용자의 이메일을 검증함.
  • 명령줄 도구 테스트에서는 exec로 awk를 실행해 foobar를 대문자로 바꾼 결과가 FOOBAR인지 확인함.

테스트 라이브러리

  • exec_bg와 fetch 같은 헬퍼 함수는 Testbox Library에 포함됨.

라이선스

  • MIT 라이선스임.