2014-03-06 25 views
0

我想在我的秋千单元测试中避免sleeping snail,但我没有看到用事件做这件事的方法。目前,我有somethink像在秋千单元测试中避免睡觉蜗牛

WindowWithKeyListener window = new WindowWithKeyListener(); 
Robot robot = new Robot(); 
robot.keyPress(KeyEvent.VK_1); 
robot.keyRelease(KeyEvent.VK_1); 
assertTrue(window.key1pressed()); 

robot.keyPress(KeyEvent.VK_2); 
robot.keyRelease(KeyEvent.VK_2); 
assertTrue(window.key2pressed()); 

这不无Thread.sleep()断言前工作,因为事件将放缓。但是我怎么能在这里避免Thread.sleep()

摆动定时器不能按特定顺序执行。这里测试的最佳方法是什么?

+0

我们已经使用了Jemmy,如果存在一个好的解决方案,那将是一个加分。 – jan

+1

为什么不注册一个侦听器来执行断言或者可能使用未来并等待侦听器完成? – Thomas

+0

我不知道我是否只是误解,但当然我不想简单地验证事件触发,'key1pressed'代表更复杂的逻辑,因为事件被触发而执行......单个执行者和期货应该工作,对。看起来对我来说有点矫枉过正,有没有更简单的解决方案?但是,你怎么知道断言Future可以开始? – jan

回答

0

Jemmy似乎处理这个已经

org.netbeans.jemmy.operators.ComponentOperator.typeKey(int) 

似乎做一些等待。