专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

怎么对ChannelHandler做测试?

使用EmbeddedChannel。它的数据流程如下所示:

93_1.png

  • writeOutbound:将出站消息写到EmbeddedChannel中,如果能通过readOutbound从EmbeddedChannel中读到数据,返回true
  • readOutbound:从EmbeddedChannel中读取一个出站消息,它所返回的所有东西都会穿过整个的ChannelPipeline。如果没有读取的,就返回null
  • writeInbound:将入站消息写到EmbeddedChannel中,如果能通过readInbound从EmbeddedChannel中读取数据,返回true
  • readInbound:从EmbeddedChannel中读取一个入站消息,任何返回都会经过ChannelPipeline。如果没有读取,返回null

测试案例

ByteBuf buf=Upooled.buffer();
for(int i=1;i<10;i++){
    buf.writeInt(i*-1);
}
//MyAbsChannelHandler 负责将每个负数转为正数,并一个一个的输出
EmbeddedChannel channel=new EmbeddedChannel(new MyAbsChannelHandler());
assertTrue(channel.writeOutbound(buf));
//finish 表示将 EmbeddedChannel 标记为完成,如果有可读的入站数据或出站数据,返回true
assertTrue(channel.finish());

for(int i=1;i<10;i++){
    assertEquals(i,channel.readOutbound());
}
assertNull(channel.readOutbound())

文章永久链接:https://tech.souyunku.com/47291

未经允许不得转载:搜云库技术团队 » 怎么对ChannelHandler做测试?

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们