Synopsis 24:テスト
Moritz Lenz <moritz@faui2k3.org> Carl Mäsak <cmasak@gmail.com>
Created: 30 Dec 2010 Last Modified: 31 Dec 2010 Version: 6
use Test;
plan 6;
ok True, 'True is a true value';
nok False, 'False is a false value';
is 'ab'.uc, 'AB', 'successful string comparison';
is_approx 2.sqrt, 1.4142135623, 'Approximate numeric comparison';
dies_ok { die "yes"}, 'exceptions';
eval_dies_ok '1 1', 'two terms in a row are a parse error';
Perl 6 は、標準的なテストモジュールで、来るTest. それは公式の spectest 組曲によって使われたテストモジュールだ。
テストする関数は Test Anything Protocol に従っている出力を発散する。 http://testanything.org を見ろ。
このドキュメントの目的で、テストファイルがそれがするファイルだuse Test.
sub plan($number_of_tests) is export { ... };
sub done() is export { ... };
順にテストファイルがそのすべてのテストを走らせたかどうか決定するために、plan 関数呼び出しがテストの総数の総数を提供しているテストファイルのどこかで作られることができる。 実際に動かされたテストの数がマッチしないとき、 TAP 馬具がそれから誤り状態にフラグを付けることができる。
もしplan 呼び出されない、done 自動的に計算されたタリーを出力するために指定期間の末、テストファイル、と呼び出されることができる。
もしいずれもなら、 TAP 馬具がそれを1つの錯誤だと見なすだろうplan 同様にdone 呼び出された、あるいはもしテストに1以上の呼び出しがあったならファイル、あるいは呼び出しが、2つのテスト関数を呼び出すことの間に、(始めに、あるいは終わりによりむしろ)起こったかどうか。
テスト関数がその人とともに印刷されるであろうオプションの内容引数をとるすべてok あるいはnot ok 結果とテスト数。 下の並びでの任意パラメタがいくつかのような、何か他の機構によって実装される方がましである(とき・から・につれて・ように)、そうなものが表示したとは、注意しろmulti subs.。 このような詳細は実装依存として残される。
ポジショナルパラメータの名前は標準じゃない、それでこれらに位置の引数にテストを与えて、ファイルは名指しで落胆している。
すべては次の関数についてデフォルトによって輸出される:
# unconditional passing/failing pass($desc?) flunk($desc?) # evaluates $cond in boolean context ok(Mu $cond, $desc?) nok(Mu $cond, $desc?) # string comparison is(Mu $got, Mu $expected, $desc?) isnt(Mu $got, Mu $expected, $desc?) # structural comparison with infix:<eqv> is_deeply(Mu $got, Mu $expected, $desc?) # numeric comparison with 1e-5 is_approx(Mu $got, Mu $expected, $desc?) # class membership testing # converts the type name to an actual type object # if $type ~~ Str isa_ok(Mu $var, Mu $type, $desc?) # exception testing lives_ok(Callable $code, $desc?) dies_ok(Callable $code, $desc?) # eval + exception testing eval_lives_ok(Str $code, $desc?) eval_dies_ok(Str $code, $desc?)
これらの関数は Perl 5 のテストから乱暴に同一名の関数と同じ道を努力して進む::さらに多くとテスト::例外モジュール。
TODO :いっそう正確な説明
TODO