テスト本が届いたのでテストをしてみるテスト。勉強日記の公開テストもかねて。
Perl Testing: A Developer's Notebook (Developers Notebook)
Test::Simpleはじめの一歩
#!/usr/bin/perl
use strict;
use warnings;
use Test::Simple tests => 1;
sub hello_world {
return "Hello, world!";
}
ok(hello_world() eq "Hello, world!");
proveコマンドでテストを実行する。
$ prove 01-first_test.t
01-first_test....ok
All tests successful.
Files=1, Tests=1, 0 wallclock secs ( 0.06 cusr + 0.00 csys = 0.06 CPU)
うむ。tests => 1 でテスト項目の数を決めるけど、そんなのいちいち数えるのは面倒くさい。そんな場合には次のようにするとよいらしい(というか全部これ?)。
その前に、Perlのテストは拡張子を.tにするのが慣例なのでauto-mode-alistにcperl-modeで突っ込んでおくといい感じ。
Test::Simpleはじめの一歩・改
#!/usr/bin/perl
use strict;
use warnings;
use Test::Simple 'no_plan';
sub hello_world {
return "Hello, world!";
}
ok(hello_world() eq "Hello, world!");
’no_plan’で全部やっつける。
Test::Simpleはじめの一歩・失敗バージョン
okだけだとつまらないので失敗させてみる。
#!/usr/bin/perl
use strict;
use warnings;
use Test::Simple 'no_plan';
sub hello_world {
return "Hello, world!";
}
ok(hello_world() eq "Hello, World!");
テストの正解をs/world/World/。
[omae@colinux]% prove 01-first_noplan.t [~/sandbox/perl/test]
01-first_noplan....NOK 1
### Failed test in 01-first_noplan.t at line 11.
### in 01-first_noplan.t at line 11.
### Looks like you failed 1 test of 1.
01-first_noplan....dubious
Test returned status 1 (wstat 256, 0x100)
DIED. FAILED test 1
Failed 1/1 tests, 0.00% okay
Failed Test Stat Wstat Total Fail Failed List of Failed
-------------------------------------------------------------------------------
01-first_noplan.t 1 256 1 1 100.00% 1
Failed 1/1 test scripts, 0.00% okay. 1/1 subtests failed, 0.00% okay.
失敗しやがった。ざまぁみろ、ケケケッ…。
テストにコメントをつける
#!/usr/bin/perl
use strict;
use warnings;
use Test::Simple 'no_plan';
sub hello_world {
return "Hello, world!";
}
ok(hello_world() eq "Hello, world!",
'hello_world() output should be sane');
prove コマンドに-vオプションをつけて実行。
$ prove -v 01-first_noplan.t
01-first_noplan....ok 1 - hello_world() output should be sane
1..1
ok
All tests successful.
Files=1, Tests=1, 0 wallclock secs ( 0.01 cusr + 0.06 csys = 0.07 CPU)
通常だとファイル単位のテスト結果の表示だけど、-v(冗長モード)で一個一個のテスト結果を表示してくれる。
というわけで、mt_text_hatena.plインストールしちゃえば勉強日記がずいぶん書きやすくなる。でも、結城先生方式ではてダラつかうかどうするか…、悩みどころ。