调试和测试 Swing 代码
2010-03-17 00:00:00 来源:WEB开发网核心提示: FEST-Swing 可以简化 GUI 测试甚至是复杂测试的编写和阅读, Swing 线程Swing 是一个单线程 UI 工具包,调试和测试 Swing 代码(9),因为它不是线程安全的,所以所有 Swing 代码必须在 EDT 中执行,如果检测到任何违规,它会强迫测试终止,如官方文档所述,从多
FEST-Swing 可以简化 GUI 测试甚至是复杂测试的编写和阅读。
Swing 线程
Swing 是一个单线程 UI 工具包。因为它不是线程安全的,所以所有 Swing 代码必须在 EDT 中执行。如官方文档所述,从多线程中调用 Swing 代码会造成线程冲突或内存一致性错误。
Swing 的线程策略状态:
Swing 组件必须在 EDT 中创建。
Swing 组件必须在 EDT 中进行访问,除非您调用文档化为线程安全的方法。
虽然这看起来很简单,不过很容易破坏规则。Swing 不为正确的 EDT 使用提供任何运行时检查,而且大部分时候表面上 “行为良好” 的 Swing UI 实际上却破坏了这些规则。
Swing Explorer 和 FEST-Swing 都支持查找 Swing 线程策略的违规行为。图 5 显示了 Swing Explorer 的 EDT 监视器。EDT 监视器可以在执行应用程序时报告 EDT 访问违规行为。
图 5. Swing Explorer 的 EDT 监视器
查看原图(大图)
FEST-Swing 提供 FailOnThreadViolationRepaintManager 来检查 EDT 违规行为,如果检测到任何违规,它会强迫测试终止。配置很简单:在标有 @BeforeClass 注释的 set-up 方法中放入它,如清单 6 所示:
清单 6. 安装 FailOnThreadViolationRepaintManager
@BeforeClass public void setUpOnce() {
FailOnThreadViolationRepaintManager.install();
}
- ››调试SQL server 2008功能设置
- ››调试JavaScript错误
- ››调试和测试 Swing 代码
- ››调试集成 Java 和 C/C++ 的代码
- ››Swing中Timer定时器的使用
- ››Swing中为文本组件定制统一的菜单
- ››调试JavaScript脚本程序(Firefox篇)
- ››调试JavaScript/VB Script脚本程序(ASP.NET篇)
- ››调试JavaScript/VB Script脚本程序(Wscript篇)
- ››调试JavaScript/VB Script脚本程序(ASP篇)
- ››调试JavaScript/VB Script脚本程序(IE篇)
- ››调试诊治CSS布局的10个有效方法
更多精彩
赞助商链接