Text::Trac のバグフィックス・機能追加とテスト駆動開発

rt.cpan.org でバグレポートと機能追加要望があがっていたので、久々に Text::Trac に手を入れました。

バグフィックスしたものは 0.05 としてアップしてあります。また、新機能として Trac LinksWiki Macros をサポートしたものは、svn リポジトリに置いてあります。リクエストしてくれた方の確認後、問題なければ CPAN にアップ予定です。

今回のこのバグフィックスと機能追加で、TDD のありがたさを改めて実感しました。

バグについては一度修正して、報告者に確認をお願いしたのですが、まだバグが残っている状態でした。すると今度は報告者の方が、テストを書いて送ってくれたのですが、これが大いに役に立ちました。テストがあると、どこにどういったバグがあるのか、make test (あるいは prove コマンド)一発でわかるので、言葉で説明してもらうよりも明確ですし、バグ確認後、fail したテスト(と他のテスト)全てが通るようにプログラムに修正を施していけばいいわけで、やることが明確になって作業がスムーズにできました。

自分も今後バグレポートする際には、テストとセットでレポートするようにします。

新機能の追加についても、ひとつの機能毎にテストを書く、実装する、テスト動かして確認、修正する、というサイクルで作業していたのですが、コマンド一発でテストができると、全体の流れを途切れさせることなく、集中力を保ったまま作業ができていいですね。

これを機に Text::Trac のテストを Test::More から Test::Base へ移行したのですが、Test::Base で DRY にテストが書けると、更に全体の流れがよくなり、非常に気持ちよく作業ができます。Test::Base 最高。

Test::Base をご存知ない方は、Shibuya.pm テクニカルトーク #7宮川さんの発表資料(PDF) を是非ご覧下さい。