我正在创建一个文本编辑器,我刚刚完成了高亮显示算法的编写,以使每个语法以不同的颜色显示,并使用适当的解析树呈现在正确的位置。
我想知道是否有人可以向我提供测试或一系列测试用例的位置,以确保不会出现任何问题。测试用例应涵盖 Web 上使用的所有 JavaScript 语法,包括边缘情况(即包括像 throw
这样的语法,尽管它很少使用)、DOM 创建和操作等。
我添加了以下静态测试用例。它应该涵盖所有语法。
有几点需要注意:由于代码是在语法级别上递归解析的,因此只需要基本情况。例如,对编辑器:
一个[1];和 [1][2][3][4][5];将是相同的语法。因为第二行,只是递归地比第一行更多的子。
我创建的测试用例已移至下面的答案。
最佳答案
有趣的问题。我认为我最初的方法是从相当主要的库中获取一堆 JavaScript,除非这里有任何其他有趣的建议。我在考虑 jQuery、Mootools、Prototype 等。
然后,一旦你完成了几个主要的库,再做一些小的。我会结帐 Github .也许看看Underscore , HeadJS ,也许还有其他人在 https://github.com/languages/JavaScript .
我还会使用几个缩小的库,通过 JSBeautifier 运行它们.不确定美化后的 JS 语法是否与原始语法略有不同。
最后,我会考虑通过 JSLint 运行其中一些库,然后手动浏览并修改源代码以明确符合 JSLint 制定的一些“规则”。
编辑:“命中”是指确保涵盖每条规则提供的两种情况,而不仅仅是“干净”版本。
关于Javascript 语法测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6126672/