将测试运行器与测试中的应用程序同步

时间:2011-12-29 15:40:10

标签: java awt native

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

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

感谢。

1 个答案:

答案 0 :(得分:0)

SunToolkit#realSync()