gpt4 book ai didi

java - 使用 AssertJ 在没有测试失败的情况下在测试后关闭应用程序

转载 作者:行者123 更新时间:2023-11-28 20:49:55 24 4
gpt4 key购买 nike

我使用 AssertJ 来测试我的 swing 应用程序。我必须在测试后和下一次测试之前关闭我的应用程序,这将再次启动我的应用程序。但是,当我调用 frame.close();System.exit(0); 时,测试崩溃,退出代码为 0。我尝试在测试前使用此代码:

ApplicationLauncher.application(App.class).start();
pause(8000);
frame = WindowFinder.findFrame(FrameMatcher.withTitle("Application")).using(robot());
try {
frame.close();
} catch (Exception e){
e.printStackTrace();
}
ApplicationLauncher.application(App.class).start();
pause(8000);
frame = WindowFinder.findFrame(FrameMatcher.withTitle("Application")).using(robot());

但是,在 frame.close(); 之后我遇到了同样的问题。可能有人知道该怎么做吗?有什么建议吗?

最佳答案

org.assertj.swing.security.NoExitSecurityManagerInstaller 可能是您问题的答案。

在 JUnit @BeforeClass 方法调用中:

// to prevent system.exit from causing issues
org.assertj.swing.security.NoExitSecurityManagerInstaller.installNoExitSecurityManager();

//Then start the appplication
org.assertj.swing.launcher.ApplicationLauncher.application("your.main.application.class").start();

在 JUnit @AfterClass 方法调用中:

//After exiting your application uninstall the no exit security manager
org.assertj.swing.security.NoExitSecurityManagerInstaller.installNoExitSecurityManager().uninstall();

还有一个异常显示是我无法避免的:

Application tried to terminate current JVM with status 0 (org.assertj.swing.security.ExitException)

但它不会导致您的测试失败并且可以忽略,而且我认为这是预期的,因为应用程序在 NoExitSecurityManagerInstaller 处于“启用”状态时退出。

希望这对您有所帮助!

关于java - 使用 AssertJ 在没有测试失败的情况下在测试后关闭应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50815329/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com