《编写可测试的JavaScript代码》——导读

简介:

screenshot

前言
编写可测试的JavaScript代码
既然要对代码进行测试,那么为什么不让这一过程变得尽可能简单和轻松呢?JavaScript客户端代码测试之所以尤其困难,是因为我们几乎无法控制代码运行的环境。多种类型的操作系统、多个版本的操作系统、多种类型的浏览器、多个版本的浏览器,更不用说插件、扩展、多语言版本和缩放大小了,还有一些未知内容,所有这些因素交织在一起,阻碍着应用程序的性能。这些因素会导致程序变慢、中断、崩溃,最终覆灭。这里面的内容纷繁复杂!服务端JavaScript给了我们更多的控制权,以便我们能够从总体上控制执行环境。然而,Rhino和Node.js应用程序不像其他语言一样有完整的成熟工具、测试程序以及生态系统。此外,Node.js的异步特性也使得测试变得更加复杂。有趣的是,这样一种与异步执行密切相关的语言,竟然没有设置与该执行模式相配的内置支持。
无论如何,测试——尤其是JavaScript测试——是很复杂的。克服这种复杂性的最好办法是完全控制自己实际所控制的东西:代码。代码是连续存在的,一方面是从别人的代码到自己的代码,另一方面是从遗留代码到非遗留代码。
什么是遗留代码(legacy code)?我比较推崇Michael Feathers在他的优秀作品Working Effectively with Legacy Code(Prentice Hall出版社)中的定义:遗留代码是没有测试过的代码,这段代码将无法存活或永远不会被任何人接触到。再次接触遗留代码时,就是要重写它了。看一下当前的项目,任何没有被测试的代码都有可能会被重写。重写的人可能不是原作者,而是负责处理这个任务(增强代码或修补漏洞)的人。除非这些代码经过测试,否则它们就是必须要重写的无用代码。这段代码可能很惊人,但它唯一能存活的方法就是永远不会产生Bug,并且没有人要求对它进行增强或者添加新特性。即便如此,你愿意将这些未经测试的产品代码推到市场上吗?即使代码之前“能用”,之后你还能继续满意吗?拥有该代码的公司也是同样满意吗?因此,通常的结果都是付费重写。公司不得不再次付费进行代码重写,这真是太糟糕了,但这就是遗留代码的情况。

前言
[第1章 可测试的JavaScript
1.1 现有技术](https://yq.aliyun.com/articles/91986)
1.2 代码是让人用的
1.3 卓越的应用程序代码
1.4 小结
第2章 复杂度
第3章 基于事件的架构
第4章 单元测试
第5章 代码覆盖率
第6章 集成测试、性能测试、负载测试
第7章 调试
第8章 自动化

相关文章
|
18天前
|
JSON JavaScript 前端开发
JavaScript原生代码处理JSON的一些高频次方法合集
JavaScript原生代码处理JSON的一些高频次方法合集
|
1月前
|
Java 关系型数据库 数据库连接
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
28 1
|
1月前
|
存储 JavaScript 前端开发
非常实用的JavaScript一行代码(整理总结)
非常实用的JavaScript一行代码(整理总结)
30 0
|
1月前
|
JavaScript 前端开发 测试技术
如何编写JavaScript模块化代码
如何编写JavaScript模块化代码
12 0
|
1月前
|
机器学习/深度学习 前端开发 JavaScript
实用的javascript代码分享
32个史上最有用的js代码
30 1
|
17天前
|
算法 安全 Java
java代码 实现AES_CMAC 算法测试
该代码实现了一个AES-CMAC算法的简单测试,使用Bouncy Castle作为安全提供者。静态变量K定义了固定密钥。`Aes_Cmac`函数接受密钥和消息,返回AES-CMAC生成的MAC值。在`main`方法中,程序对给定的消息进行AES-CMAC加密,然后模拟接收ECU的加密结果并进行比较。如果两者匹配,输出"验证成功",否则输出"验证失败"。辅助方法包括将字节转为16进制字符串和将16进制字符串转为字节。
|
1月前
|
JSON 前端开发 JavaScript
16个重要的JavaScript代码
16个重要的JavaScript代码
32 1
|
1月前
|
JavaScript
当当网新用户注册界面——JS代码
当当网新用户注册界面——JS代码
7 0
|
1月前
|
JavaScript
当当网首页——JS代码
当当网首页——JS代码
11 1
|
1月前
|
JavaScript Java
什么?java中居然可以执行js代码了?真是不知者不怪
什么?java中居然可以执行js代码了?真是不知者不怪
13 1

热门文章

最新文章