w3ctech 2011 JavaScript专题会议(上海站)最近在张江畅星大厦召开,参会者200多人,来自国内技术社区的四位知名专家高博、权一、杜欢、贺师俊分别做了精彩的演讲,涉及的内容包括测试驱动开发、ES5新特性、iOS上的Web应用、Javascript框架API设计思想等。InfoQ中文站整理了大会的精彩内容,供读者参考。
\测试驱动的JavaScript开发入门
\来自盛大创新院的高博以自己翻译的书“测试驱动的Javascript开发”为背景,结合在测试工作中的实践经验,介绍了测试驱动在Javascript开发中的应用。
\什么是测试驱动开发?高博指出,在传统的开发过程中,大家遵循着先开发后测试的阶段模式,按部就班地需求分析、设计、开发、测试、发布。而在测试驱动开发过程中,测试环节位于开发环节之前,甚至取代了设计环节。测试用例代码完成在先,实际产品代码完成在后,这意味着第一行代码是测试用例代码。测试的结果是开发进度的指挥棒,测试推进到哪里,开发才能跟进到哪里。测试的结果是“失败“,才能继续进行开发工作,直至测试的结果成为”通过“为止。
\高博举了一个有关Javascript的测试驱动例子,需求是”开发一个JavaScript字符串函数,实现去除字符串开始和结尾的空白字符的功能”。如何编写第一个测试用例?他认为首先要对需求分解,在这个例子中,可以把”开头“和”结尾“当成两个小的需求,另外不能忽略隐含的需求,比如假定被测试的函数名为trim,那么第一个测试用例可能是判断其在作用域中是一个函数:typeof \"\".trim == \"function\"。回到刚才分解的两个需求上来,针对每一个需求写一个测试用来,第一个看起来像这样:
\\\"test trim should remove leading white-space\":\ function () {\ assert(\"should remove leading white-space\