[英]How do you unit test for tcp connection?
我最近有机会为我的项目编写一个简单的tcp-client,由于我对tcp / ip的巨大无知,我很难让它正常工作。
我发现有时候当tcp服务器关闭时连接被拒绝或者有时在调用receive时我可能会遇到异常时,我会遇到奇怪的连接问题。
由于tcp-server是一个黑盒子,我们无法访问它,我想知道在这种情况下,为此编写单元测试的最佳方法是什么?
我想要么我应该写一个tcp-server并让它返回某些输入,就像我期望从真实服务器那样,或者只是模拟与返回理想情况数据相关的函数。
我只是不喜欢这样的事实:有时我可能会遇到奇怪的连接/接收问题而且我想知道如何正确编写单元测试,我可以在将来重复使用/扩展以确保之前工作的所有内容仍然有效以防我的代码或代码发生变化。
谢谢
你应该有两种测试:
使用这两种测试,您应该能够涵盖大部分客户的功能
对于单元测试,我创建一个简单的套接字服务器(在UT启动时启动)只是为了测试客户端。 如果你简单而独立,你将减少运行测试的麻烦。 您也可以使用像ncat这样的工具来实现这一点。
然而,尽管如此,可能存在可能难以接受的问题。 Keepalive问题,可能是路由等外部问题。 但是如果你使用真正的侦听套接字(而不是模拟连接),它就是真正的TCP。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.