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テストフレームワークもあると思うので、
機会があれば調べてみようと思います。