我正在尝试测试我自己的处理程序,这些处理程序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 的单元测试中注意到,已经创建了一个可测试的处理程序,它使用包范围的方法来测试处理程序。
有没有办法从包外测试空闲事件?我需要确保对这些事件的报道。任何提示表示赞赏。谢谢!
POPMUISE
相关分类