Javascript语法测试用例

GAg*_*new 8 javascript unit-testing syntax-highlighting parse-tree

我正在创建一个文本编辑器,我刚刚编写了突出显示算法,让每个语法以不同的颜色显示,并使用正确的解析树渲染到正确的位置.

我想知道是否有人可以提供我,或测试或一系列测试用例的位置,以确保没有任何东西会破坏.测试用例应涵盖在Web上使用的所有JavaScript语法,包括边缘情况(即包括throw尽管很少使用的语法),DOM创建和操作等.

我添加了以下静态测试用例.它应该涵盖所有语法.

有几点需要注意:由于代码在语法级别上递归解析,因此只需要基本情况​​.例如,编辑:

一个[1]; 和[1] [2] [3] [4] [5]; 将是相同的语法.由于第二行,只是递归地更多sub而第一行.

我创建的测试用例已移至下面的答案.

GAg*_*new 1

这是迄今为止我能想到的最好的测试用例。

编辑:添加了正则表达式,并抛出。这种情况在语法上是有效的,应该涵盖 JS 的所有情况。如果您发现缺少任何内容,请直接给我留言,以便我可以在此处添加。

a = 1;
b = { 'a' : a };
c = 'a';
d = this;
var patt1=/w3ghouls/i;
throw "Err3";
function e(a,b,c){
    d += a + b + c++;
    return d;
}
this.xy.z = function(a, b){
    var x = null;
}
var f = function(a,b){
    if(a == b || (b === a && a)){
        var f = [a,b];
        try{
            f = f.slice(0);
        }catch(e){
            console.log(e * e + '');
        }
    }else if(a){
        a = null;
        a = undefined;
        b = typeof a;
        b = true;
        b = false;
    }else{
        switch(c){
           case 'c':
             break;
           default:
             null;
             break;
        }
    }
}
for(var i =0; i <= a.length; i++){
    do{
       continue;
       null;
      }while(a != b);
}
if(a == b)
  (a) ? null : null;
/* This is a finished 
   test case */
Run Code Online (Sandbox Code Playgroud)