Javascript 语法测试用例

标签 javascript unit-testing syntax-highlighting parse-tree

我正在创建一个文本编辑器,我刚刚完成了高亮显示算法的编写,以使每个语法以不同的颜色显示,并使用适当的解析树呈现在正确的位置。

我想知道是否有人可以向我提供测试或一系列测试用例的位置,以确保不会出现任何问题。测试用例应涵盖 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/

相关文章:

vim - 将 vim GUI 配色方案转换为使用 256 色 vim 的自动方法?

javascript - 在更新 div 的同时添加和删除类

javascript - 使用 javascript 的 Mocha 和 Sinon 单元测试问题

iOS UI 测试与集成测试

java - JUnit5 中的 assertAll 与多个断言

python - 当我使用 idlelib 突出显示语法时如何避免更改 tkinter 中选定文本的颜色

jquery - 如何为复选框标签添加突出显示?

javascript - 使用 Lodash _.get 返回多个元素?

javascript - 运行 webpack 时有效正则表达式中出现意外标记

javascript - Flash 播放器的视口(viewport)调整大小事件