Есть ли способ вызвать задержку для проверки системы, которая требует много времени для обработки транзакции? - PullRequest
2 голосов
/ 23 февраля 2012

Мы используем JUnit (и Maven) для проверки правильности вставки документов на сервер MarkLogic.Загружаемые файлы очень большие и проходят сложный и трудоемкий процесс по мере их поступления, часто для их завершения требуются десятки секунд или несколько минут.

Есть ли хороший чистый способ периодически запрашивать результаты, которые мы ищем в системе?Если бы мы могли опрашивать каждые десять секунд, это отвечало бы нашим потребностям.Я видел, как люди говорят, что нужно использовать Thread.sleep () в Java, но это не похоже на правильное решение.У меня есть RTFM это в JUnit, и я не нахожу решение.Возможно, Maven может быть вовлечен в решение?Спасибо.

Ответы [ 2 ]

0 голосов
/ 25 февраля 2012

Я использую цикл и Thread.sleep для тех редких случаев, когда мне нужно это сделать.(Обычно это касается очередей, поэтому я не буду ждать более 20 секунд.) Попробуйте каждые X секунд, а затем через Y секунд сдавайтесь и терпите неудачу.Решение о ожидании Нико звучит лучше, хотя.

Maven не поможет с этой проблемой.Maven - это сборка.Единственный способ, которым это может помочь, - это использовать библиотеку-заглушку вместо реального веб-сервиса для тестирования.Но это не то, что вы хотите проверить.

0 голосов
/ 24 февраля 2012

Для ваших тестов вы можете попробовать Awaitility Framework .

Вы можете установить тайм-аут, а также обратный вызов, который проверяет выполнение длинной задачи (если задачаасинхронный).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...