在开发一个包含越来越多 JavaScript 代码的大型 Web 应用程序时,我们就如何提高代码质量进行了一次头脑风暴会议。
最初的想法之一是引入单元测试。这将是一个长期目标;然而,这并不能解决最常见的回归原因:不断变化的 DOM 和浏览器特定问题。
单元测试在模拟的、无 DOM 的环境中运行,并且不在页面上。
我正在寻找的是一个断言框架,它可以像这样插入到代码中:
var $div = $("div.fooBarClass");
assertNotEmpty($div);
$div.fooBarAction();
我找到了可以做到这一点的断言框架,但它们要么登录到控制台或登录到 DOM,要么打开一个愚蠢的弹出窗口。这些都不能与(数千个)自动化测试一起工作。 我正在寻找的是一个运行时断言框架,它通过 AJAX 记录失败的断言!理想情况下,它应该是:
- 内置通用断言。
- 与 JQuery 模块、闭包集成。
- 记录(通过 Ajax)断言、文件名、页面、行号、失败原因、环境的一些预配置变量(浏览器、发布版本等)。
- 支持失败时的回调。(如果任何断言框架都可以做到这一点,我很乐意编写回调来做 Ajax 部分。)
- 适用于所有浏览器。
- 从生产版本中排除是微不足道的。
- 维护的代码库。