首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何测试JavaScript缩减输出

如何测试JavaScript缩减输出
EN

Stack Overflow用户
提问于 2013-02-13 04:34:09
回答 6查看 2.4K关注 0票数 16

我们最近升级到了一个较新版本的JavaScript精简库。

在测试团队进行了大量的质量保证工作后,我们发现我们的minifier的新版本有一个问题,改变了代码块背后的意图和含义。

(生活教训:不要升级JS微型计算机,除非您确信需要新版本。)

minifier用于客户端JavaScript代码,重点放在与DOM相关的活动上,而不是更多的“业务逻辑”。

一个简化的示例说明了minifier升级所破坏的内容:

代码语言:javascript
复制
function process(count)
{
     var value = ""; 
     value += count; //1. Two consecutive += statements
     value += count;
     count++;        //2. Some other statement
     return value;   //3. Return
}

被错误地缩小为以下内容:

代码语言:javascript
复制
function process(n){var t="";return t+n+n,n++,t}

虽然我们可以编写一些单元测试来捕获一些潜在的问题,但考虑到JavaScript大量使用DOM交互(数据输入等),如果没有用户测试(非自动化)就很难进行彻底的测试。我们曾考虑过使用像Esprima这样的JS to AST库,但考虑到可以对精简的代码进行更改的性质,它会产生太多的误报。

我们还考虑过尝试编写代表性测试,但这似乎是一项永无止境的任务(而且很可能会错过案例)。

仅供参考:这是一个非常复杂的web应用程序,有几十万行JavaScript代码。

我们正在寻找一种方法来测试最小化过程,而不是“只需再次、彻底、重复地测试所有东西”。我们希望在这个过程中应用更多的严格性/科学性。

理想情况下,如果我们有更好的科学测试方法,我们可以尝试多个微型器,而不必担心每个微型器都会以新的微妙方式破坏我们的代码。

更新:

我们的一个想法是:

  1. 与旧的version
  2. beautify it
  3. 缩小与新版本,
  4. 美化和
  5. 视觉上的不同。

这看起来确实是一个好主意,但是差异是如此普遍,以至于diff工具几乎标记了每一行都是不同的。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14841304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档