Я хочу протестировать свой планировщик в приложении Spring 5 и посчитать, сколько раз он вызывается за определенное время. p>
Вот мой планировщик:
Код: Выделить всё
@Component
public class CancelVisitScheduler {
@Scheduled(fixedDelay = 10000, initialDelay = 10000)
public void execute() {
// do some things
}
}
Код: Выделить всё
import org.awaitility.Duration;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import static org.awaitility.Awaitility.await;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
class CancelVisitSchedulerTest {
@Mock
private CancelVisitScheduler cancelVisitScheduler;
@BeforeEach
void setUp() {
MockitoAnnotations.initMocks(this);
}
@Test
void shouldExecuteAfter10Seconds() {
await().atMost(Duration.ONE_MINUTE).untilAsserted(() -> verify(cancelVisitScheduler, times(4)).execute());
}
}
Код: Выделить всё
org.awaitility.core.ConditionTimeoutException: Assertion condition defined as a lambda expression in path....CancelVisitSchedulerTest
Wanted but not invoked:
cancelVisitScheduler.execute();
-> at path....CancelVisitSchedulerTest.lambda$shouldExecuteAfter10Seconds$0(CancelVisitSchedulerTest.java:25)
Actually, there were zero interactions with this mock.
within 60 seconds.
Есть ли какой-нибудь простой способ сделать это?
Подробнее здесь: https://stackoverflow.com/questions/659 ... springboot