【发布时间】:2018-03-27 08:54:43
【问题描述】:
尝试将 assertJ-swing 用于基于 java-swing 的应用程序的 UI 测试。
情况:JavaApp.java 中的示例应用程序(带有 Main 类)在从该 java 文件调用时工作正常(作为 Java 应用程序运行)。但是当它从 TestNG 中使用 assertj-swing 的命令调用时:
application(JavaApp.class).start();
应用程序打开但立即关闭。
问题:这是唯一的方法吗?请提出解决方案或任何其他方法来启动应用程序并使其保持打开状态,以便执行进一步的操作。
Java应用程序:
package jdialogdemo;
import java.awt.*;
import java.awt.event.*;
import javax.lang.model.util.SimpleElementVisitor6;
import javax.swing.*;
public class JavaApp {
public static void main(String[] args) throws Exception {
final JFrame frame = new JFrame("JDialog Demo");
final JButton btnLogin = new JButton("Click to login");
btnLogin.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e) {
LoginDialog loginDlg = new LoginDialog(frame);
loginDlg.setVisible(true);
// if logon successfully
if(loginDlg.isSucceeded()){
btnLogin.setText("Hi " + loginDlg.getUsername() + "!");
}
}
});
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(700, 200);
frame.setLocationRelativeTo(null);
frame.setLayout(new FlowLayout());
frame.getContentPane().add(btnLogin);
frame.setVisible(true);
}
}
【问题讨论】:
标签: swing user-interface ui-testing gui-testing assertj