gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 01:54:19 25 4
gpt4 key购买 nike

我正在尝试测试我自己的处理程序,它监听来自 io.netty.handler.timeout.IdleStateHandlerio.netty.handler.timeout.IdleStateEvent。我没有看到其他人遇到此问题,但是当我在代码中 hibernate 以触发空闲事件时,空闲事件不会触发。我相信这是由于嵌入式 channel 在同一线程上运行?下面是一个测试示例。

@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();
}

我在 unit tests for IdleStateHandler 中注意到已创建一个可测试的处理程序,它使用 package-scoped methods测试处理程序。

有什么方法可以从包外部测试空闲事件吗?我需要确保这些事件的报道。任何提示表示赞赏。谢谢!

最佳答案

您应该在 sleep 后调用channel.runPendingTasks()。这应该执行现在准备好的计划任务。

关于java - Netty - 使用 IdleStateHandler 对处理程序的空闲状态进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54990459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com