xyzzy:テストライブラリ

2010-04-30 11:14:12 +0900 (3150d); rev 2

概要

xyzzy上での単体テストを支援するライブラリです。Gaucheのテストモジュールgauche.testを参考に作られています。

ダウンロード

使い方

ソースファイル中にコメントとして書かれていますが、あわせて[gauche-ref-ja:gauche.test]のドキュメントも 参照するとよいでしょう。

なおサンプルを実行すると*test*バッファが開かれて次のような出力がなされます。

Testing mylib ...
<Section 1>--------------------------------------------------------------------
test test-1.0, expects (0) ==> ok
test test-1.1, expects (0) ==> ERROR: GOT (0)
test test-1.2, expects (0) ==> ok
<Section 2>--------------------------------------------------------------------
test test-2.0, expects #S(test::test-error mes nil) ==> ok
test test-2.1, expects 0 ==> ERROR: GOT #S(test::test-error mes #S(division-by-zero operation / operands (1 0)))
test test-2.2, expects 0 ==> >CALL STACK 16: (/ 1 0)
>CALL STACK 15: (#<lexical-closure: (anonymous)>)
>CALL STACK 14: (system:*byte-code ...)
>CALL STACK 13: (#<lexical-closure: (anonymous)>)
>CALL STACK 12: (system:*byte-code ...)
>CALL STACK 11: (#<lexical-closure: prim-test> "test-2.2" 0 #<lexical-closure: (anonymous)> nil)
>CALL STACK 10: (system:*byte-code ...)
>CALL STACK  9: (test "test-2.2" 0 #<lexical-closure: (anonymous)>)
>CALL STACK  8: (test* ("test-2.2" 0 (/ 1 0)))
>CALL STACK  7: (#<function: *load-library> "test-foo")
>CALL STACK  6: (apply #<function: *load-library> "test-foo" nil)
>CALL STACK  5: (system:*byte-code ...)
>CALL STACK  4: (load-library "test-foo")
>CALL STACK  3: (system:*byte-code ...)
>CALL STACK  2: (#<lexical-closure: run-test>)
>CALL STACK  1: (command-execute run-test)
0で除算しました: /: (1 0)

ERROR: GOT #S(test::test-error mes #S(division-by-zero operation / operands (1 0)))
failed.
discrepancies found.  Errors are:
test test-1.1: expects (0) => got (0)
test test-2.1: expects 0 => got #S(test::test-error mes #S(division-by-zero operation / operands (1 0)))
test test-2.2: expects 0 => got #S(test::test-error mes #S(division-by-zero operation / operands (1 0)))