Я пытаюсь проверить свои собственные обработчики, которые прослушивают io.netty.handler.timeout.IdleStateEvent
из io.netty.handler.timeout.IdleStateHandler
.Я не вижу, чтобы кто-то еще имел эту проблему, но когда я сплю в своем коде, чтобы вызвать события простоя, события простоя не запускаются.Я полагаю, что это связано с тем, что встроенный канал работает в том же потоке?Ниже приведен пример теста.
@Test
public void userEventTriggered_IdleStateEvent() throws Exception {
// given
IdleStateHandler idleStateHandler = new IdleStateHandler(
1L,0L,0L, TimeUnit.SECONDS);
EmbeddedChannel channel = new EmbeddedChannel(idleStateHandler, myHandler);
// when
TimeUnit.SECONDS.sleep(2);
// then
assertFalse(channel.isActive());
channel.finish();
}
Я заметил в модульных тестах для IdleStateHandler , что был создан тестируемый обработчик, который использует методы пакетной области для проверки обработчика.
Есть ли способ проверить события простоя снаружи пакета?Мне нужно обеспечить освещение этих событий.Любые советы приветствуются.Спасибо!