【问题标题】:Testing socket.io events测试 socket.io 事件
【发布时间】:2011-10-06 13:09:46
【问题描述】:

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

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

【问题讨论】:

  • 链接的文章是否足够,或者您是否选择了不同的方法?
  • 感谢您的提问。这篇文章看起来不错,但我不完全确定这是要走的路。据我所知,您提供的链接测试了服务器发送的内容,但我的代码中的逻辑实际上在后端做了很多事情,这些事情对客户端来说是不可见的。正如我所提到的,我将其中的一些部分移到了独立的模块中,但仍有一些部分未经测试,我担心当我最不希望在不可预见的未来某个时候它们会默默地失败。因此,虽然我仍然可以使您提供给我的解决方案发挥作用,但我觉得需要做大量工作。
  • 听起来像是 Jasmine 的间谍的好人选 - 答案已更新。

标签: node.js socket.io


【解决方案1】:

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

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

编辑:如果您需要测试没有立即输出的功能,Jasmine BDD 提供spies。这些可用于“查看内部”函数并测试是否传递了某些参数等,并且可用于模拟异步调用以进行测试,以及编写更多功能测试:

Jasmine Spies 是测试替身,可以充当存根、间谍、假货或 当用于期望时,模拟......可以检查间谍是否是 调用与否以及调用参数是什么。间谍有 以下字段:wasCalled、callCount、mostRecentCall 和 argsForCall(参见文档)。间谍在每个规范结束时都会被拆除。

Docsan articlerelated SO question

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-18
    • 1970-01-01
    • 2019-01-24
    • 1970-01-01
    • 1970-01-01
    • 2014-08-05
    • 1970-01-01
    相关资源
    最近更新 更多