2007年に購入し、ずっと本棚で埃をかぶっていましたが、ようやく読み終えました。短いけどすぐに動かせるサンプルコードも豊富で、ページ数も多くなく、サクサク読み進めることが出来ました。 #amazon||> ||< #more|| 残念なことに、日本のAmazonではこの読書メモを書いている時点では在庫が無いようです。定価は約30ドルで日本円なら三千円前後なのですが、現時点では中古だと五千円を越えてしまうようです・・・。 内容ですが、Perlでのテスト自動化に焦点を当てたHowTo本です。CPANの"Test::"で始まるモジュール群を活用し、様々な場面でのテスト自動化をサンプルコードを交えて解説していきます。 書籍で使われている、テスト関係のモジュールです: #pre||> Apache::Test DBD::Mock HTML::Recorder IPC::Run Inline::C Module::Build::TestReporter Test::Builder Test::Cmd Test::Cmd::Common Test::DatabaseRow Test::Deep Test::Distribution Test::Exception Test::Expect Test::HTML::Lint Test::HTML::Tiny Test::Harness Test::Harness::Straps Test::Kwalitee Test::LongString Test::MockDBI Test::MockModule Test::MockObject Test::More Test::NoWarnings Test::Output Test::Output::Tie Test::Pod Test::Pod::Coverage Test::Signature Test::Simple Test::WWW::Mechanize Test::Warn ||< これらを駆使し、「こんな時どうするの?」について回答しています。 - 独自のテスト機能を作りたい場合は? - 大量のテストファイルを管理するには? - PODをテストするには? - コードカバレッジやPODのカバレッジを取るには? - cronなどで単体テストを自動化するには?またテスト結果のレポートをメールするには? - テストの難しいコードをテストするには? -- Perlの基本関数をテスト用のMockに置き換えるには? -- モジュール or オブジェクトをMockするには?PartialMockは可能か? - DBをテストするには? -- DBのデータを効率的にテストするには? -- DBをMockするには? - Webアプリをテストするには? - Webアプリのテストをモジュールに含めて配布するには? - XUnitライクな単体テストを行うには? - Perl以外の外部プログラムをブラックボックスとしてテストするには? ''実践的・現実的な話題を取り扱っている点が素晴らしいです。'' 注意点としてはサンプルコードでPerlのオブジェクト指向プログラミングをふんだんに取り入れている点です。 package Foo; sub new { my ($class, $inst) = @_; bless \$inst, $class; } package main; my $o = Foo->new('foobar'); このコードが何をしているのか説明できるだけの基礎知識がないと、サクサク読み進めるのは辛いかもしれません。 Perlでテスト駆動開発やテスト自動化を進めたい場合にオススメな一冊でした。