我想学习如何测试 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?