定例会:JMock,VirtualMockObjectについて
前回の定例会で、システム開発における支援ツール関連の実務経験・ナレッジの交換を行いました(Hudson、Selenium、他)。
前回予定していながら、業務都合で出席できなくなったメンバーから、Mock系の話をしてもらいました。
具体的には、JMockとVirtualMockObject。
共にDI系の開発で使われるモックの作成支援を行ってくれるものです。
.....と、分かったような書き方をしつつ、「DI系を前提とした」ってことは私は知りませんでしたけど...。
大抵のツールに言える事なのでしょうが、今回のMock系も同様。
適用した方が効率的と言える場合と、変わらない場合(或いは既にラップされて、より高いレベルで支援される場合)とが有るようです。
特に、実行時のシーケンスの単純なテストケースが大量に存在し、検証を必要とする場合ほど効果が大きいようです。
コンピューターに任せられることは人がやるな!(コスト比較と敷居のレベルに拠るでしょうが)、という原則通りですね。
話をしてくれたメンバーが現在使っているのが VirtualMockObject。
JMockの方は2年前の経験だったので、少しおさらいで調べ直してくれました。
2者の比較という点ではJMock側に機能的な制限があったようですが、最新版では機能拡張されているので有意な差異は無いかも!?、とのことでした。
プログラム的なレベルで相互依存性を下げたい場合(対象コンポーネントの寿命を長めに想定する場合とか)、クラス数やらインターフェイス数が増える傾向が強いと思います。
完全に自動生成されるクラス群をわざわざテストしよう!、というケースは殆ど無いと思いますが、僅かでも人間の手の入るコンポーネントはテストで検証したい。
どこをツールに任せるのか?
基本的なポリシーと、効率化の選択肢を多く持つこと。
臨機応変に最適性を判断しながら、部分最適と全体最適のバランスを考慮して適用していける事が大切だろうと思います。
| 固定リンク | コメント (0) | トラックバック (0)









最近のコメント