如何开始使用Jemmy v2

时间:2013-12-09 19:23:11

标签: java swing jemmy

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

1 个答案:

答案 0 :(得分:1)

您认为错误的params传递给了org.netbeans.jemmy.Test.main。它期望实现Scenario。假设Main在默认包中,请尝试以下操作:

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

您可以根据需要指定Main的包。