Windowsアプリケーションのユニットテスト方法
以前に書きましたが、Windowsアプリケーションのユニットテスト方法についてです。
Windowsアプリケーションのユニットテストは、UI部とロジック部を分けて、
ロジック部のみをユニットテストする方法が一般的かと思います。
ですが、
UI部やUI部との絡みの部分は手作業でのテストになってしまうので・・・
個人的には、UI部も含めてまとめてユニットテストした方がいいと思っています。
JavaのSwing限定ですが、Fest-Swingを使えば、
UI部も含めてまとめてユニットテストができます。
■Fest-Swing
http://fest.easytesting.org/swing/wiki/pmwiki.php
こんな感じで、画面の操作手順をユニットテストコードで書いていきます。
ユニットテストを実行すると、Swingの画面が表示されてロボットが操作していきます。
ユニットテストの実行結果として、画面の表示項目を比較します。
public class MyFrameTest { FrameFixture frame; RobotFixture robot; @Before public void setUp() { } @After public void tearDown() { robot.cleanUp(); } @Test public void test01() { // 画面&ロボット設定 frame = new FrameFixture(new MyFrame()); robot = frame.robot; // 画面を表示 frame.show(); // ボタンを押下 frame.button("button1").click(); // 実行結果を確認(テキストボックスの値が100であるかを確認) frame.textBox("text1").requireText("100"); }
日本語の情報が少ないのが難点で・・・
APIドキュメントや公開ソースと睨めっこしながら、プロジェクトに導入しました。
プロジェクト導入効果も高かったので、
今後も、Windowsアプリケーションのユニットテストは
この方法でいきたいなぁ・・・と思っています。
たぶん、.Netでも似たような事ができるかと・・・
.Net用のGUIテストフレームワークもあると思うので、
機会があれば調べてみようと思います。