2011-12-29 78 views
0

我正在修复使用java.awt.Robot来操纵测试应用程序的自定义测试运行器。
经过每一个最简单的操作(鼠标点击某个组件,点击鼠标),我需要测试运行器TO WAIT为测试过程中的应用程序处理事件。只有在此后继续检查值,点击其他一些按钮等。
有可能等待事件队列变空的Robot.waitForIdle()函数。
但由于提前检查值(假设值不是在某些后台线程中计算的值,而是非常美观的线程),我仍然遇到同步问题。
我的猜测是由于Robot并没有直接将事件放入事件队列中,而是让底层操作系统将Robot生成的新事件放入JVM事件队列。而且这个本地调用是异步的,意味着将新事件放入事件队列不会由不像SwingUtilities.invokeLater()那样的任何JVM线程执行。将测试运行器与测试应用程序同步

是否可以实现一些挂钩来确定或等待底层操作系统将新事件放入事件队列?
我错过了什么吗?

谢谢。

回答