Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Netty-使用IdleStateHandler对处理程序的空闲状态进行单元测试_Java_Netty - Fatal编程技术网

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()
。这将执行现在已准备就绪的计划任务。

完美!这正是我所期望的。另外,如果其他人遇到这个问题,事件是按顺序触发的,因此如果您想按顺序触发写、读、所有空闲状态,您可以。谢谢你的帮助,诺曼!