Gaucheでまとめてテスト
1個1個に分かれてると、どうもモジュール感がないので、どか~んとまとめてとテストしたい。
#!/usr/bin/gosh (use gauche.test) (test-start "test**-test-start!!") (define (test** title list) (test-section title) (for-each (lambda (l) (test* (cadr l) (eval (car l) '()) (eval (cadr l) '()))) list)) (define test-data '(1 2 3)) (test** "test**-test" '((1 (car test-data)) ('(2 3) (cdr test-data)) (#t (list? test-data)) (test-data test-data) (*test-error* (hoge test-data)))) (test-end)
実行すると、
% ./test.scm Testing test**-test-start!! ... <test**-test>------------------------------------------------------------------ test (car test-data), expects 1 ==> ok test (cdr test-data), expects (2 3) ==> ok test (list? test-data), expects #t ==> ok test test-data, expects (1 2 3) ==> ok test (hoge test-data), expects #<error> ==> ok passed.
evalいいかんじ。マクロの制御がイマイチわからん。