FiveAM


導入方法

Quicklispに登録されています (Quicklispを使う)

(ql:quickload 'fiveam)

テストの定義方法

5am:test で一連のテストを定義し、5am:is で1つのテストを定義します

; テスト対象の関数(例)
(defun test-target-function (n)
  (loop for i from 0 to n
        sum i))

(5am:test my-test
  "test-target-function をテストします"     ; 短い説明
  (5am:is (= 0 (test-target-function 0)))
  (5am:is (= 55 (test-target-function 10)))
  (5am:is (= -6 (test-target-function -3))))

(5am:test another-test
  (5am:is (= 0 0)))

テストの実行方法

5am:run! で現在定義されたテストをすべて実行、 5am:run で指定したテストのみを実行します。リストを引き渡すとで複数のテストを指定することが可能です。

(5am:run!)
(5am:run 'my-test)
(5am:run '(my-test another-test))

実行例

テストを定義します。

(defun test-target-function (n)
  (loop for i from 0 to n
        sum i))

(5am:test my-test
  "test-target-function をテストします"     ; 短い説明
  (5am:is (= 0 (test-target-function 0)))
  (5am:is (= 55 (test-target-function 10)))
  (5am:is (= -6 (test-target-function -3))))

実行します。

* (5am:run!)

Running test suite NIL
 Running test MY-TEST ..f
 Running test ANOTHER-TEST .
 Did 4 checks.
    Pass: 3 (75%)
    Skip: 0 ( 0%)
    Fail: 1 (25%)

 Failure Details:
 --------------------------------
 MY-TEST [test-target-function をテストします]:

(TEST-TARGET-FUNCTION 3)

 evaluated to

6

 which is not

=

 to

-6

..
 --------------------------------

NIL

確認環境:Windows 10 / SBCL 1.2.14

参考リンク