c# – 你如何单元测试tcp连接?

我最近有机会为我的一个项目写一个简单的tcp客户端,由于我对tcp / ip的无知,我很难让它正常工作.

我发现有时我可以得到奇怪的连接问题,当连接被拒绝作为tcp服务器关闭或有时我可能会收到一个异常,当调用接收.

由于tcp服务器是一个黑匣子,我们无法访问它,我想知道在这种情况下,为单元测试编写的最好方法是什么?

我想我应该写一个tcp服务器,并使其返回某些输入,就像我期望从真正的服务器,或只是模拟与返回理想情况数据相关的功能.

我只是不喜欢这样的事实,有时我可能会遇到奇怪的连接/接收问题,我想知道如何正确地编写单元测试,我可以再次使用/扩展,以确保以前工作的一切应该仍然工作以防我的代码或代码发生变化.

谢谢

最佳答案
你应该有两种测试:

>集成测试 – 使用可以发送的真正的裸骨TCP服务器
接收连接.创建最低限度的服务器
功能,并用它来测试客户端的行为.使用a
简单的TCP服务器可以测试客户端的发送和接收
消息以及如何连接和断开与服务器的连接.另一个
有用的测试是几个客户端如何连接和发送消息
服务器.
>单元测试 – 使用Mocking可以测试更复杂的场景.您
将无法发送或接收消息,但您可以测试
客户端的内部逻辑 – 如果有两个消息,它的行为如何
到达,发生错误等重新发送

使用这两种测试,您应该能够覆盖客户的大多数功能

转载注明原文:c# – 你如何单元测试tcp连接? - 代码日志