一.TDD
测试驱动开发(Test-Driven Development,TDD)是一种敏捷(AGILE)开发方法论,它把开发流程倒转了过来,在进行代码实现之前,首先保证编写测试用例,从而用测试来驱动开发(而不是把测试作为一项验证工具来使用)。
TDD的原则很简单:
a.只有当某个测试用例运行失败,进而需要编写代码才能通过时才去编写代码;
b.编写能保证测试通过的最少数量的代码;
c.在每一步中都去掉重复的内容;
d.一旦所有测试都通过了,就为下一个必需的功能点新增一个失败的测试用例。
这些简单的原则可以保证:
a.你所开发的代码可以有机地组织在一起,并且所编写的每一行代码都是目的明确的;
b.你的代码可以保持高度模块化、高内聚,并且高度可复用(因为你必须能够测试它);
c.提供了一个全面的测试用例集,从而可以避免将来造成损环和bug;
d.测试用例同时又是开发规范,并且是文档化的,可以用于未来的需求和变更中。
对于像JavaScript这种非编译型的动态语言来说,我们坚信做好单元测试用例集会为将来减少很多麻烦。
二.Karma
Karma能让基于测试驱动开发(test-driven development,TDD)的流程更加简单、快速,并且有趣。它使用NodeJS和SocketIO(http://www.socket.io)来运行代码,并且可以在多种浏览器中极其快速地进行测试工作。可以到以下地址获取更多信息:http://github.com/vojtajina/karma/。