PerlとJavaでのテストの違い
結論からいうと大きな差はないのですが、少しだけ違いがあります。
データドリブンのテストとしてのTest::Baseの存在とxUnit styleのテストが主流ではない事、この2点です。
Test::Base
Javaの世界でのテストと似たものがないのは、Test::BaseとTest::Pod::Coverageかなぁという気がしました。Test::Baseは、データドリブンなテストがとても書きやすく、これは素晴らしいテストモジュールだなぁと思いました。
XUnit style
後、違いがあるのは、テストのスタイルです。CPANモジュールのレベルだと、Test::Moreが割とよく使われていて、xUnit styleはあまり一般的じゃないっていう違いがあります。
個人的な感覚では、アプリケーションというレベルだと、
- xUnit的なsetup, teardownとか、starup時、shutdown時などの処理が簡単にかけるテストの機構がほしい
- テストケースで共通な部分を抽象化するのをクラスベースで書きたい
- テストケースを意味ある単位でグループ化したい
と思ってしまうので、アプリケーションレベルでのテストの機構としては、Test::Moreはちょっと不足してるのかなぁという気がしました。
逆にCPANのモジュールというサイズだと、逆にクラスベースの抽象化機構やsetup, teardownなどの必要性もさほどなく、xUnit styleは大げさなケースも結構ありそうだなぁという気もするので、これは適材適所なのかなという気もします。
Perlでのテストについて
Perlでのテストについては、Mobile-Factoryの方々が書かれた記事もあるので、テストについては、さほど悩まなくてもいいですね。Happy Testing !
http://gihyo.jp/dev/feature/01/test-perl/