Javascript 专门支持测试异步代码的node.js单元测试框架?

Javascript 专门支持测试异步代码的node.js单元测试框架?,javascript,unit-testing,node.js,Javascript,Unit Testing,Node.js,有30多个测试框架列在 哪些框架最受欢迎?他们的优点和缺点是什么 我正在寻找一个框架,它支持对具有大量异步回调的代码进行单元测试(可能与大多数其他节点项目类似)。另外,我正在寻找一些简单、小而不是复杂的东西 到目前为止,我已经调查过: 简单易懂,支持异步代码,允许您定义预期调用的断言数量以及测试完成的时间 看起来很有趣。允许您很好地构建测试,并附带许多高级功能。不确定这些功能是否真的有用,或者它们是否会妨碍您 是测试框架所能做到的最简单的,并且支持异步调用。它是JQuery的测试工具,因此您可

有30多个测试框架列在

哪些框架最受欢迎?他们的优点和缺点是什么

我正在寻找一个框架,它支持对具有大量异步回调的代码进行单元测试(可能与大多数其他节点项目类似)。另外,我正在寻找一些简单、小而不是复杂的东西

到目前为止,我已经调查过:

  • 简单易懂,支持异步代码,允许您定义预期调用的断言数量以及测试完成的时间
  • 看起来很有趣。允许您很好地构建测试,并附带许多高级功能。不确定这些功能是否真的有用,或者它们是否会妨碍您
是测试框架所能做到的最简单的,并且支持异步调用。它是JQuery的测试工具,因此您可以确保它得到了高度支持并且运行良好

可以考虑集成,这是一个嘲弄框架,特别是允许你伪造异步事件。本教程的其他部分将介绍如何使用Sinon测试异步代码。它位于浏览器上,但您应该能够将其调整为测试节点应用程序。

和是最常用的选项。尽管有很多好的选择更新:根据存储库中的Readme.md,截至2011年11月,是的继承者。通常与一起使用,以允许BDD样式的断言

无论您选择什么,我建议您使用stubcore或第三方模块


我使用/维护一个小的测试框架,它在串口上运行测试,这样你们就可以轻轻地滥用它了。不过,使用它的人并不多。

自2012年3月以来,我们一直在使用,而且没有回头看。它简单易用,允许您在模块级和类级装置(设置/拆卸)之间进行选择,它有一组合理的内置断言,其命令行工具非常灵活。试着把它和其他的东西结合起来


我们简单地看了一下誓言,但不想用一种全新的奇怪语法来定义测试。您所需要的只是断言、固定装置和一个像样的工具,而Nodeunit完全符合要求。

我还没有使用过它,但Pivotal Labs的情况如何?

我自己的库的小插件,但更重要的是,我只想让其他工具开发人员思考JS中的异步测试应该是什么样子:

我专门写这篇文章是因为QUnit太没用了。QUinit无法捕获异常(!),需要一个hacky start()来跟踪深度

许多测试框架都没有一个简单的回调包装器来测试超时和捕获异常。我不知道为什么--回调是异步开发的核心=/

  setTimeout(function() {
    ok( true, "Passed and ready to resume!" );
    start();
  }, 1000);
OKJS在事件监听器中捕获异常,并使用内部死人触发器跟踪未完成的异步请求,该触发器可能会导致测试失败

  setTimeout( unit.callback("test callback is fired"), 500);
  setTimeout( unit.callback("callback fired, with subtests", function () {
        unit.assert("in callback, true === true", true,true);
  }),  500);
希望看到企业解决方案支持这种风格。OKJS提倡的其他一些特性是串行执行的测试块(配方样式),但在块之间等待事件被解析

是一个npm包,它为单元测试提供了一个强大的、基于web的前端。它目前只支持mocha,并提供执行单个或多组测试以及将节点检查器步进单个测试等功能


了解更多信息。

正如您所知,Sinon也可用于nodeunit。事实上,nodeunit最初是基于QunitAPI的,但经过了更新以使异步单元测试更容易。作为额外的好处,如果您想与客户端共享代码,nodeunit还可以在浏览器中运行测试:)看起来这很合适!你为什么用它来对抗茉莉花?