2011-12-29 3 views
0

Я исправляю пользовательский тестовый бегун, который использует java.awt.Robot для управления тестируемым применением.
После каждой простейшей операции (мышь на какой-то компонент, щелчок мышью) Мне нужен тестовый бегун ДЛЯ ПОДДЕРЖКИ для приложения в процессе тестирования события. И ТОЛЬКО ПОСЛЕ этого продолжают проверять значения, нажимая некоторые другие кнопки и т. Д.
Функция Robot.waitForIdle() может ждать, пока очередь событий станет пустой.
Но у меня все еще есть проблемы с синхронизацией из-за ранних проверочных значений (допустим, значения, которые не вычисляются в некоторых фоновых потоках, но очень в EDT-потоке).
Я предполагаю, что это связано с тем, что робот не помещает событие в очередь событий напрямую, но это является преимуществом базовой ОС, чтобы поместить новое событие, сгенерированное роботом в очередь событий JVM. И эти нативные вызовы асинхронны, то есть включение нового события в очередь событий не выполняется ни одним из потоков JVM, не похожим на SwingUtilities.invokeLater().Синхронизировать тестовый бегун с тестируемым приложением

Возможно ли реализовать какой-либо крючок, чтобы определить или подождать, когда базовая ОС помещает новое событие в очередь событий?
Я ничего не теряю?

Спасибо.

ответ

Смежные вопросы