Ответ 1
Вы можете добиться этого, подготовив специальную сборку с включенным Jemmy и вызовите Jemmy из приложения, запускаемого в режиме jnlp.
Мне нужно создать некоторые тесты gui с помощью Jemmy, но я не знаю, как запустить его с помощью приложения javaws. В учебниках/примерах/etc есть что-то вроде этого:
new ClassReference("org.netbeans.jemmy.explorer.GUIBrowser")
.startApplication();
Этот код открывает примерное окно, но как я могу, используя объект ClassReference open *.jnlp
file? Или - это еще один способ "соединить" jemmy с приложением Java Web Start?
Спасибо за продвижение.
Вы можете добиться этого, подготовив специальную сборку с включенным Jemmy и вызовите Jemmy из приложения, запускаемого в режиме jnlp.
Решение:
.jar
файлы из этой сборки в тестовый проект..jnlp
файл в текстовом редакторе и найдите основной класс приложения
application-desc main-class="[Main application class]"/>
new ClassReference("[Main application class]").startApplication();
Теперь вы можете получить доступ к элементам этого Java-приложения из тестовой среды
Для тестирования GUI мы используем Jemmy, библиотеку, которая поставляется с IDE NetBeans и очень полезна для тестирования приложений Swing.
Тесты JUnit, которые используют Jemmy так, например:
@Test
public void JunitTest() {
JFrameOperator mainFrame = new JFrameOperator();
JTextFieldOperator textField = new JTextFieldOperator(mainFrame, "textIn");
int x = 10;
assertEquals(x, textField.getLocationOnScreen().x);
}
Добавление аннотации @Test
и использование JUnit assertEquals()
и fail()
при необходимости.
Вы также можете сделать это с помощью jnlp. Уже предложил @Сергей Гринев
Снимок:
Возможно, вы можете сделать тот же трюк с другим инструментом тестирования AWT/Swing, но uispec4j позволяет перехватить приложение webstart, выполненное из jnlp, вам не нужно запускать приложение, вызывая main(), и вам не нужно иметь исходный код вашего веб-сайта в репозитории кода тестирования.
Кредит отправляется tporeba
Чтобы узнать больше о Jemmy, вы можете пройти через эту ссылку