1

Java Swing のユーザー インターフェイスをテストする方法を学び、Jemmy v2 を試してみたいと思っています。http://jemmy.java.net/tutorial.htmlの指示に従おうとすると、問題が発生しました。現在、次のクラスのみで構成される新しいプロジェクトを作成しました。これにより、テストしたいアプリケーションを開始し、このアプリケーションへの参照を作成します。残念ながら、テストしたいアプリケーションがアクティブになるとすぐに「java.lang.ClassCastException」例外がスローされるため、根本的に間違っているようです。

import org.netbeans.jemmy.*;
import org.netbeans.jemmy.explorer.*;
import org.netbeans.jemmy.operators.*;

public class Main implements Scenario 
{   
    public int runIt(Object param) 
    {
        try {
            //start application
            new ClassReference("org.netbeans.jemmy.explorer.GUIBrowser").startApplication();
            //wait frame
            new JFrameOperator("Tic-Tac-Toe 3.0");
        } catch(Exception e) {
            e.printStackTrace();
            return(1);
        }
        return(0);
    }

    public static void main(String[] argv) 
    {
        String[] params = {"sut2.TicTacToe"};
        org.netbeans.jemmy.Test.main(params);
    }
}

私が得る例外:

Shortcut test events
Using org.netbeans.jemmy.drivers.DefaultDriverInstaller driver installer
Executed test sut2.TicTacToe
Exception in thread "main" java.lang.ClassCastException: sut2.TicTacToe cannot be cast to org.netbeans.jemmy.Scenario
    at org.netbeans.jemmy.Test.testForName(Test.java:265)
    at org.netbeans.jemmy.Test.<init>(Test.java:113)
    at org.netbeans.jemmy.Test.run(Test.java:176)
    at org.netbeans.jemmy.Test.run(Test.java:202)
    at org.netbeans.jemmy.Test.main(Test.java:250)
    at Main.main(Main.java:25)

sut2.TicTacToe は、ActionListener を実装するクラスですが、JFrame を拡張しません (別のさらに単純な Java プログラムを試してみましたが、同じ結果が得られました)。このクラス内で JFrame オブジェクトが作成され、GUI コンポーネントを含むパネルが追加されます。

私が間違っていることと、Jemmy v2 を適切にセットアップする方法を教えてください。

4

1 に答える 1