Java Netty-使用IdleStateHandler对处理程序的空闲状态进行单元测试
我正在尝试测试我自己的处理程序,这些处理程序从Java Netty-使用IdleStateHandler对处理程序的空闲状态进行单元测试,java,netty,Java,Netty,我正在尝试测试我自己的处理程序,这些处理程序从io.netty.handler.timeout.IdleStateEvent中侦听io.netty.handler.timeout.idlestateehandler。我很抱歉没有看到其他人有这个问题,但是当我在代码中休眠以触发空闲事件时,空闲事件不会触发。我相信这是因为嵌入式通道运行在同一个线程上?下面是一个示例测试 @测试 public void userEventTriggered\u IdleStateEvent()引发异常{ //给定 I
io.netty.handler.timeout.IdleStateEvent
中侦听io.netty.handler.timeout.idlestateehandler
。我很抱歉没有看到其他人有这个问题,但是当我在代码中休眠以触发空闲事件时,空闲事件不会触发。我相信这是因为嵌入式通道运行在同一个线程上?下面是一个示例测试
@测试
public void userEventTriggered\u IdleStateEvent()引发异常{
//给定
IdleStateHandler IdleStateHandler=新的IdleStateHandler(
1L、0L、0L、时间单位(秒);
EmbeddedChannel=新的EmbeddedChannel(idleStateHandler,myHandler);
//什么时候
时间单位。秒。睡眠(2);
//然后
assertFalse(channel.isActive());
通道。完成();
}
我在中注意到,已经创建了一个可测试的处理程序,它使用来测试处理程序
有没有办法从包外测试空闲事件?我需要确保对这些事件的报道。任何提示都将不胜感激。谢谢 您应该在睡眠后调用
channel.runPendingTasks()
。这将执行现在已准备就绪的计划任务。完美!这正是我所期望的。另外,如果其他人遇到这个问题,事件是按顺序触发的,因此如果您想按顺序触发写、读、所有空闲状态,您可以。谢谢你的帮助,诺曼!