Unit Test環境の構築
今までのテストは
というフローでした。
マクロの実装が進んできたので Scheme での Unit Test の必要性が出てきました。
そこで目をつけたのが id:kzk さんの SigSchemeの unittest.scm です。
これをそのまま動かせれば Unit Test 環境のテストはしなくても良いはず!。
set!/load はこのための布石だったのです。意外と大変だった。
ふと SigScheme の test ディレクトリを見ると、外部で提供されている数々のテストコードがあってこれを活用しているようです。
つーかこれ全部通らないといけないのか、今の段階では絶対無理だな。。
まずは - 演算子と for-eachと list を動かして total report をうごかす。
(load "./test/scheme.scm") (load "./test/unittest.scm") (define test-name "procedure +") (assert-true test-name (= 3 (+ 1 2))) (assert-true test-name (= 2 (+ 4 -2))) (assert-true test-name (= 11 (+ 4 2 5))) (define test-name "procedure -") (assert-true test-name (= 2 (- 3 1))) (assert-true test-name (= 0 (- 3 1 2))) (assert-true test-name (= -3 (- 3 1 2 3))) (assert-true test-name (= -3 (- 3))) (define test-name "procedure /") (assert-true test-name (= 2 (/ 4 2))) (assert-true test-name (= 2 (/ 8 2 2))) (assert-true test-name (= 1 (/ 54 2 9 3))) (define test-name "procedure *") (assert-true test-name (= 2 (* 1 2))) (assert-true test-name (= -8 (* 4 -2))) (assert-true test-name (= 40 (* 4 2 5))) (total-report)
OK: 1 tests, 13 assertions, 13 successes, 0 failures, 0 errors
きたきた!