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/