为了账号安全,请及时绑定邮箱和手机立即绑定

Netty - 使用 IdleStateHandler 对处理程序的空闲状态进行单元测试

Netty - 使用 IdleStateHandler 对处理程序的空闲状态进行单元测试

largeQ 2022-07-20 10:55:27
我正在尝试测试我自己的处理程序,这些处理程序io.netty.handler.timeout.IdleStateEvent从io.netty.handler.timeout.IdleStateHandler. 我没有看到其他人有这个问题,但是当我在代码中睡觉以触发空闲事件时,空闲事件没有触发。我相信这是由于在同一线程上运行的嵌入式通道?下面是一个示例测试。@Testpublic 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 的单元测试中注意到,已经创建了一个可测试的处理程序,它使用包范围的方法来测试处理程序。有没有办法从包外测试空闲事件?我需要确保对这些事件的报道。任何提示表示赞赏。谢谢!
查看完整描述

1 回答

?
POPMUISE

TA贡献1765条经验 获得超5个赞

你应该channel.runPendingTasks()睡后打电话。这应该执行现在准备好的计划任务。



查看完整回答
反对 回复 2022-07-20
  • 1 回答
  • 0 关注
  • 152 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信