2011-10-06 64 views
7

我正在研究nodejs应用程序。我设法打破了单独模块中的一些代码,我正在使用nodeunit进行测试,但是我的代码库的很大一部分依然依赖于socket.io。测试socket.io事件

如何测试我的socket.io事件?

+0

链接的文章是否足够,或者您选择了不同的方法? – Andy

+0

感谢您的询问。文章看起来不错,但我不完全确定这是一条路。据我所知,你提供的链接测试了服务器发送的内容,但是我的代码中的逻辑实际上在后端做了很多事情,而客户端却无法立即看到它。正如我所提到的,我将其中的一部分转化为独立的模块,但仍有一些未经测试的部分,恐怕会在无法预料的未来某一时刻期望它们失败时悄然失败。所以虽然我仍然可以为你提供解决方案,但我觉得需要做很多工作。 – vise

+0

听起来好像是茉莉花间谍的最佳人选 - 回答更新。 – Andy

回答

8

试试这篇文章:Socket.IO and Asynchronous Testing with node.js

所以,假设。我的意思是,让我们创建竞争者 服务器的假实例,以及可视化客户端。然后,我们将构建一个测试 套件,它使用这些假货来测试我们开发的实际服务器 。例如,我将在此粘贴一些稍微简化的代码片段 。如果你真的对这些东西感兴趣,你会发现它 全部在Github

编辑:如果你需要测试功能,为它没有即时输出,茉莉花BDD提供spies。这些可以被用来“看里面”的功能和测试某些参数是否通过等,并且是嘲讽测试异步调用,以及写更多的功能测试有用:

茉莉花间谍是测试双打这可以作为存根,间谍,假货或 在预期中使用时,嘲笑...间谍可以检查它们是否被调用 以及调用参数是什么。间谍有 以下字段:wasCalled,callCount,mostRecentCall和 argsForCall(请参阅文档)。间谍在每个规格结束时被拆除。

Docsan articlerelated SO question

+0

谢谢,我会研究它。 – vise