如何优雅的编写 Socket.io 框架的测试代码?
发布于 2 年前 作者 Suwings 2001 次浏览 来自 问答

没有任何 http 框架Socket.io 框架实现的一个程序,但我希望程序能够完全的测试覆盖。

类似于这样的代码: QQ截图20210328121211.png

完全的 Socket 通信,要实现测试覆盖,我目前的实现方式如下: 使用 mocha 的异步测试方式。 大概就是用 Socket.io 客户端去链接发送数据,然后根据不同的状态码和数据比较,得出测试结果。

2.png

再比如多条件组合测试(因为你肯定不能只测试一个条件或一组数据吧) 3.png

但是很明显,这种测试代码工程量较大,甚至有可能要针对各个返回事件进行处理,我这才刚刚开始写测试代码就已经逼近 300 行了,而且编写这种测试代码感觉又是编写了一套业务逻辑一样。

请问有任何其他更好的实现测试的方式吗?又或者说我所使用的方式有错误?

谢谢!

2 回复

测试代码本来就是巨啰嗦,会占用大量的开发时间,而且如果测试代码体量大需求变更后维护起来也难,这也是很多公司不要求写测试的原因 当然测试覆盖率高程序也更安全可靠,尤其是改完代码跑一遍测试发现还是全绿基本可以放心大胆上线运行

@zengming00 感谢回复,目前我打算将 Socket.io 请求和事件监听封装一下,改成类似于 JQuery 的 ajax 请求方式,然后再利用封装的方式来结合 should/mocha 测试,也许可以减少编写测试用例的工程量。

如果有这方面的轮子自然更好,不过我没找到…

回到顶部