JUnit実践入門を読み進めていると、「自分達が昨年作ったWebプロトのJava EE6だとどう書くのかな。」と考えます。
そもそもプロト開発の中でJUnit等の自動テストツールは使いたかったのですが、「Javaとは何ぞ」レベルから短期間で成果物を出す必要があったので組み込むことができませんでした。あ、ただ、クロスブラウザを確認するためのSeleniumだけは使いました。何か順番違う気もするのですが…。まあ、いずれにせよ、できなかった、というのは所詮言い訳ですね。というわけで冬休みの宿題気味にやってる今日この頃(^^;
で、EE開発者は皆どういう風にやっているのだろう…と下調べ。
Google先生に「java ee unit test」と聞いてみたところ一番目にOracleの記事が
出てきました。
Unit Testing for Java EE
おー、書籍と同じでJUnitとMockito使ってる。EE6ではEJBとかもPOJOだからテスト楽でしょ、と色々見聞きしていたのはこういう辺りのことを言ってるのかな。これを参考に自分のプロトで幾つか試してみなければ。
ちなみにStackoverflowでも同様の質問が。
How do you unit test Java EE code?
cactus,junitee,ejb3unit辺りのキーワードが質問者から出されてますが、投稿年は2009年くらいなので少し古いのかも。
回答みてるとUnit TestingとIntegration Testing、Functional Testingを混同しないでね、と。なるほど。
検索では日本の記事も多々出てきて、その中に「Arquillian」って単語がチラホラ。
そういえばJava EE Advent Calendarでも記事を拝見した記憶が、あ、こちらですね。
Arquillianでインテグレーションテスト最初の第一歩
位置づけとしてはインテグレーションテストのようですが、とても興味深いので、少し使ってみたいです。
前もブログで書いた気がするのですが、自分のいる所では割と旧態依然とした開発をしていて
・自動テストは基本なし
・ビルドは定期的に人手
・リグレッションも人手
と、人ありきです。楽できる所は楽したいし、自動化は楽するだけでなく、確実に品質へ結びつくし、やらない理由はない(もちろんやりすぎてテストコード書く工数が膨大になってはいかんですが)と思っています。
誰かが「しっかりやりましょう!」と取り組まないと、ずっと変わらない気がします。品質問題は定期的に取り上げられますが、多くは「上流時の設計で~」「仕様のスコープコントロールが~」と上流視点に集まるのと、下流に関しては「作りが悪いんだよな、そもそも」みたいなことを実際に作ってもいない人が言ったりしてしまうので、白目になります。
おっと、ちょっと書きすぎた…。
Java EEをやるようになって、MavenやJenkinsのような非常に優れたツールに出会えて、すでにモジュール管理、ビルド、成果物管理の問題はだいぶ前進したので、あとは試験を組み込むことができれば、旧態以前の改善第一歩としては良いのかなと思います。
ただ問題なのは、Java EE自体が初めてなので、キーワードやツールが山のように出てきて、そこだけでも中々学習コストが高いこと。
ここに関しては嫌味のないよう上手く先導して、チーム内や部内で「これ面白いですね」とか「これいいすね」という人たちが増えて、学習効率が上がっていくことを期待したい、そんな2013年です。