У меня есть система событий, которую я хочу протестировать с помощью интеграционных тестов.Обычно это работает довольно хорошо: я что-то делаю и получаю событие.
В прошлом у нас были некоторые проблемы с событиями, которые прибыли поздно.Это делает длительность теста непредсказуемой длинной - но все еще в порядке.
Но иногда я хочу проверить, что событие не наступает.В этом сценарии я вижу только способ выполнить действие и затем подождать как минимум 30 секунд - ограничение по времени, которого обычно достаточно для поступления событий.
Метод получениясобытия запускаются асинхронно с использованием Future.
Теперь я думаю, что вопрос ясен: как реализовать такой сценарий теста, не блокируя весь набор тестов на 30 секунд.Я вижу следующие варианты:
- Использовать распараллеливание Junit.На самом деле, я уже делаю это, но слишком большое распараллеливание увеличивает вероятность того, что время одного теста истекло.
- Возможно ли завершить метод теста, оставив Future открытым, и изменить статус теста с задержкой изнутриэто будущее?Whis позволит Junit разрешить еще один тест в фоновом режиме и подождать некоторое дополнительное время (возможно, даже минуту)
Не имеет значения, Junit 4 или 5