Есть ли библиотека на Java, которая выполняет следующие действия? A thread
следует повторно sleep
за миллисекунды до тех пор, пока условие не станет истинным или не будет достигнуто максимальное время.Сон и проверка до тех пор, пока не будет выполнено условие
Эта ситуация возникает, когда тест ждет, пока какое-то условие станет истинным. На состояние влияет другое thread
.
[EDIT] Просто, чтобы сделать его более ясным, я хочу, чтобы тест ожидал только X ms, прежде чем он потерпит неудачу. Он не может ждать навсегда, чтобы состояние стало истинным. Я добавляю надуманный пример.
class StateHolder{
boolean active = false;
StateHolder(){
new Thread(new Runnable(){
public void run(){
active = true;
}
}, "State-Changer").start()
}
boolean isActive(){
return active;
}
}
class StateHolderTest{
@Test
public void shouldTurnActive(){
StateHolder holder = new StateHolder();
assertTrue(holder.isActive); // i want this call not to fail
}
}
Если есть другой поток, контролирующий его, можете ли вы настроить фактический «готовый» сигнал с wait/notify вместо опроса? – Thomas
_ Условие зависит от другого потока. Могу ли я сказать, что я могу использовать _Thread join_ здесь? В любом случае +1 за вопрос. – Amarnath