我的任务是为一套用 Python 编写的网络软件编写单元测试。为消息生成器和其他静态方法编写单元非常简单,但在为网络循环线程编写测试时我遇到了瓶颈。
例如:它连接的服务器可以在任何端口上,我希望能够测试连接到多个端口(按顺序,而不是并行)的能力,而不必实际运行多个服务器。解决这个问题的好方法是什么?也许将服务器构建和破坏作为测试的一部分?有些东西告诉我,一定有一个更简单的答案让我望而却步。
我不得不想象有一些方法可以对网络线程进行单元测试,但我似乎找不到任何方法。
请您参考如下方法:
我会尝试在您现有的代码中引入一个旨在创建套接字对象的工厂。然后在模拟工厂中的测试传递中创建模拟套接字,假装它们已经连接到服务器(或者不是错误情况,你也想测试,不是吗?)并记录消息流量以证明您的代码已使用正确的端口连接到正确类型的服务器。
暂时不要使用线程,以简化测试。
