我正在为套接字服务器和客户端编写我自己的小内核,我编写的每一段代码,也都通过nunit进行测试。但是在测试客户端和服务器类之间的通信时,我遇到了问题。当客户端和服务器创建连接并开始通信时,后台会花费一些时间...在第一个测试Thread.Sleep()
上持续了很短的时间就解决了问题,但这肯定不是测试中的最佳实践...更不用说,我还需要两次睡眠,第二次错误结束。
我对复杂流程的自动测试没有那么丰富的经验...那么,当后台有某个流程直到创建连接并开始通信时,如何正确地测试通讯服务器<>客户端?
[目前,我有这个code,其中SocketServer我对Socket和ServerApplication的一些自定义实现是针对Socket核心和上面编写的单独应用程序之间的层。像控制器一样。
所以,我按照此article中所述进行了模拟,构建了一些基本的接口,现在我可以成功地模拟Socket行为了,而不必冒险,监听accept()
或其他该操作的线程在执行期间不会执行测试执行。