そのままではテストできない太古のプログラムは正規表現でメソッドを抜き出してテストする気概で。
テストのないコードがレガシーコード。自分が新たな技術的負債を作らないために。
基本。
おまけ。
- Test::Difflet ... is_deeply が見やすく整形されます
ブラウザで入力、確認の流れなどのテストに。
使用例。
PSGI 化されていない CGI も PSGI のテストが流用できます。
use Test::More;
use Test::WWW::Mechanize::PSGI;
use Plack::App::CGIBin;
my $mech = Test::WWW::Mechanize::PSGI->new(
app => Plack::App::CGIBin->new(root => "t/cgi-bin")->to_app,
);
$mech->post_ok('/foo.cgi', {name => 'bar', title => 'baz'});
$mech->content_is("buzz\n");
JavaScript のテストに。
ブラウザの挙動テストに。
- GitHub や CPAN の有名プロジェクトの t/ を覗きまわって、どのようなテストがあるか調べる
- リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック ... 他人が読みやすいように書く
- 継続的インテグレーション入門 ... CI。常に自動でテスト
- レガシーコード改善ガイド ... 言っていることはテスト書け
- リファクタリング―プログラムの体質改善テクニック ... こっちも言っていることはテスト書け