N2 ToolBox(跡地)

跡地です。引っ越しました。http://d.hatena.ne.jp/nosen

EasyMock

2004-05-29 01:37:05 | 開発手法/方法論
なんのかんのいっても僕はMockObjectを使ってテストをすることが多いのですが、MockObjectのソースコードを生成するタイプのツールはちょっと面倒だな、と感じていました。
そんな中、最近見つけたのが、EasyMock。これはソースコードを生成するのでなく、JDK1.3から使える動的プロキシの仕組みを使って実行時にMockObjectを生成するタイプのツールらしいです。
さらに特徴的なのは、予想される引数や、戻り値、例外の設定方法。
従来型のMockObjectだと、addExpectedなんちゃらなどという難しい名前のメソッドを経由して予想される値を設定してあげないといけなかったのですが、EasyMockは違います。
あらかじめMockObjectに対して予想されるメソッド呼び出しを"記録"し、実際にテストを実行するときに以前記録した操作と、実際の操作の差異をMockObject側で比較し、異なる場合はAssertionFailedErrorを投げる、という仕組みらしい。
これは確かにシンプルで分かりやすいやり方のような気がします。

同様に動的にMockObjectを生成するアプローチのツールとして、jMockというものもあるらしいです。こっちも気になります。
テストを効率良く実施できるかどうかは、ソフトウェア開発にとって死活問題ですから、是非検証してみたいですね。