Stephen Walther谈JavaScript单元测试的集成

为了适应自动化测试的需要,单元测试框架需要满足两个重要的指标。首先当然是程序库的质量了,因为你需要使用它来构建测试。其次是测试框架能够集成到你所使用的工具链当中。对于.NET开发者来说,这意味着可以通过构建脚本在IDE中运行JavaScript测试。虽说如此,但大多数框架只关注于前者,Stephen Walther则对后者展开了研究。

感兴趣的读者可以在Stephen Walther所发表的名为Integrating JavaScript Unit Tests with Visual Studio的文章中了解完整的设计,我们这里只是介绍一下其中的关键点。

最重要的事情就是他的设计中并没有浏览器组件,这很有意思。

  • 由于没有使用浏览器,因此测试的运行速度会非常快。
  • 环境非常纯粹。只有显式导入到测试引擎中的代码会执行,不会掺杂任何浏览器的东西。
  • 由于是个整洁、无浏览器的环境,因此你没法访问到DOM或是其他特定于Web的对象。
  • 虽然对于纯JavaScript库来说非常完美,但对于UI测试却完全不适合(这可以通过模拟特定于Web的对象来解决)。

虽然任何独立的JavaScript引擎都可以实现这个目标,但Stephen最终选择了IE下的JScript引擎、Windows Script Host以及传统的ASP。这样就可以通过Windows Script Interfaces与Microsoft Script Control公开给.NET了。

他构建了一个非常原始的JavaScript测试库,用于填平JScript引擎与MSTest框架之间的沟壑。考虑到设计的简洁性,这项技术实际上可以将任意的JavaScript测试库、JavaScript引擎和自动化测试框架组合起来。

查看英文原文:Stephen Walther on Integrating JavaScript Unit Tests

你可能感兴趣的:(Stephen Walther谈JavaScript单元测试的集成)