【问题标题】:Javascript Unit testJavascript 单元测试
【发布时间】:2015-06-05 04:24:19
【问题描述】:
我有一个 250 行以内的 javascript 应用程序,并想向其中添加测试。每当我进行微小的更改时,我都必须手动运行至少 10 个案例的测试,我想将其自动化。
我本可以按照不同帖子中的建议选择框架,但我想要的解决方案是最小化摩擦和代码库。诸如用于单元测试的单个文件之类的东西可能会起作用。
有没有办法在没有任何框架的情况下使用 JS 测试?我想同时编写单元测试/功能测试。或者,如果框架是唯一的选择,那么就现有代码的插件易用性和学习曲线而言,哪些框架是首选的。
【问题讨论】:
标签:
javascript
unit-testing
testing
functional-testing
【解决方案1】:
我会选择一个框架。虽然您的用例现在可能很简单,但您可能会发现自己处于一个需要更多功能的项目中。对于您认真使用的任何语言,您应该熟悉至少一个测试框架/库。构建系统和包管理也是如此。
对于 javascript,我只使用了mocha。它非常全面,易于学习,可以在浏览器或节点中使用,并且测试实际上看起来非常干净且易于阅读。
另外,使用 mocha,您可以选择自己的断言库,我使用 chai。它在构建时考虑了 tdd 和 bdd,它让编写断言感觉更像是编写自然句子而不是代码。当然,你仍然可以使用你的 js 环境为你提供的任何默认断言工具,如果有的话。
【解决方案2】:
单元测试框架很有帮助,因为它提供了运行测试并为您提供反馈的环境。不使用一个将是对你自己承担这些责任,而且工作量会比你想要做的要多得多。
如果您使用节点,设置单元测试框架非常容易。我喜欢将 Karma 用作带有 mocha 测试框架和 chai 断言库的测试运行器。