【发布时间】:2015-04-23 16:56:02
【问题描述】:
我的任务是为在各种情况下 System.exit(1) 所需的实用程序应用程序设置一些 JUnit 测试,System Rules 非常适合测试它。该应用程序还可以在 GUI 模式下运行,它会弹出一个小的 JFrame。当它在应用了 ExpectedSystemExit 规则的 JUnit 测试上下文中运行时,随着 JFrame 的构建,某些东西会偷偷地退出 jvm。关闭 ExpectedSystemExit 规则,测试正常运行,弹出 JFrame 就好了,只是我无法再测试 jvm exit()s。
猜测可能是实施的 SecurityManager 系统规则 1.9.0 不允许某些权限。我仍在收集更多调试信息。在那之前,这个问题是否有已知的解决方案?
【问题讨论】:
-
你在调用
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)吗?它调用SecurityManager.checkExit,系统规则将其解释为exit()。 -
@Banthar 事实上,进一步调试显示
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)正在触发exit()。那么,现在呢?
标签: java junit4 junit-rule system-rules