Как начать работать с Jemmy v2

Я хочу научиться тестировать пользовательские интерфейсы 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 ответ

Решение

Похоже, что вы передаете неправильно params в org.netbeans.jemmy.Test.main, Ожидается реализация Scenario, При условии, что Main находится в пакете по умолчанию, попробуйте следующее:

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

Вы можете указать пакет Main по мере необходимости.

Другие вопросы по тегам