单元测试的好处
语言:
javascript动态性,缺少类型检查;javascript宿主兼容性问题,比如Dom操作在不同浏览器上的表现不同。
其他:
测试可快速反馈功能输出,验证想法;可以保证代码重构的安全性;测试用例可以堪称代码api的使用文档,对API使用者友好;易于测试的代码说明代码设计良好。
开发驱动方式:ATDD TDD BDD
ATDD: Acceptance Test Driven Development(验收测试驱动开发)
TDD: Test-driven development (测试驱动开发)
BDD:Behavior-Driven Development (行为驱动开发)
单元测试框架和工具
断言库
断言库。断言指“用彼代码断定测试此代码的正确性,检验并暴露此代码的错误”。
常见断言库:
- Node assert
- should.js
- expect.js
- chai.js
前端测试框架
前端测试框架,运行测试的工具
QUnit is a powerful, easy-to-use JavaScript unit testing framework. It’s used by the jQuery, jQuery UI and jQuery Mobile projects and is capable of testing any generic JavaScript code, including itself!
Karma
基于node.js的Javascript测试任务管理工具。主要目标在于为开发人员提供高效的测试环境,无需设置大量配置。
本质上是产生web服务器的工具,该服务器针对连接的每个浏览器执行测试代码,检查每个浏