home ホーム search 検索 -  login ログイン  | reload edit datainfo version cmd icon diff delete  | help ヘルプ

読書メモ/"Perl Testing : A Developer's Notebook" (v1)

読書メモ/"Perl Testing : A Developer's Notebook" (v1)

読書メモ / "Perl Testing : A Developer's Notebook" (v1)
id: 876 所有者: msakamoto-sf    作成日: 2010-12-21 11:58:49
カテゴリ: Perl 読書 

2007年に購入し、ずっと本棚で埃をかぶっていましたが、ようやく読み終えました。短いけどすぐに動かせるサンプルコードも豊富で、ページ数も多くなく、サクサク読み進めることが出来ました。

残念なことに、日本のAmazonではこの読書メモを書いている時点では在庫が無いようです。定価は約30ドルで日本円なら三千円前後なのですが、現時点では中古だと五千円を越えてしまうようです・・・。

内容ですが、Perlでのテスト自動化に焦点を当てたHowTo本です。CPANの"Test::"で始まるモジュール群を活用し、様々な場面でのテスト自動化をサンプルコードを交えて解説していきます。
書籍で使われている、テスト関係のモジュールです:

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でテスト駆動開発やテスト自動化を進めたい場合にオススメな一冊でした。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-12-21 12:35:21
md5:30795c0864b8ce11229a0a53be0ae965
sha1:d7dcb2bd782b38d8caa4da5e2b851e75b16596e4
コメント
コメントを投稿するにはログインして下さい。