10

我正在尝试决定是否为大型 Node 应用程序从 Vows 切换到 Mocha。

我享受了几乎所有的 Vows 体验——但争论的传递有点奇怪。我总是不得不挠头来记住主题是如何工作的,这会干扰编写测试的基础。在深度嵌套的异步测试中尤其成问题。虽然我发现将 Vows 与 async.js 结合起来会有所帮助。

因此,Mocha 的报告似乎更加灵活。我喜欢自由选择测试风格,重要的是它也在浏览器中运行,这将非常有用。但我担心它仍然不能解决深度嵌套异步测试的可读性问题。

有没有人有任何实用的建议 - Mocha 可以使深度嵌套的测试可读吗?我错过了什么吗?

4

2 回答 2

9

摩卡是王牌。它提供了一个 done 回调,而不是 jasmine 提供的 waitsFor。我不能谈论来自誓言的迁移,但来自茉莉花的迁移是直截了当的。在你的 mocha 测试函数内部,你可以使用 async 如果你愿意(或者 Seq 等,如果你想成为遗留),但如果你需要嵌套回调,它是一个集成测试,这可能会让你考虑测试的粒度.

OT:100% 的测试覆盖率很少能带来任何价值。

于 2012-02-13T13:44:58.280 回答
3

通过在单元测试套件中使用流控制来解决深度嵌套的测试。

Vows 不容易做到这一点,因为导出样式需要创建支持这一点的流控制库。

要么为 vows 编写一个流控制库,要么切换到 mocha 并重新使用现有的流控制库。

于 2012-02-13T10:50:33.987 回答