我根据 JSLint 标准(不包括几个选项)进行编码,我认为将其用于我的浏览器内单元测试可能是个好主意,这样我就不会意外地提交任何未通过它的内容.我使用的是 QUnit,但同样适用于任何浏览器内测试框架。
我首先尝试了这段代码:
test("code passes JSLint", function () {
var i, options;
options = {
browser : true,
plusplus : true,
unparam : true,
maxlen : 120,
indent : 4
};
// in QUnit `ok` is the equivalent of `assertTrue`
ok(JSLINT(this.code, options));
// Help me out a bit if it fails
for (i = 0; i < JSLINT.errors.length; i++) {
console.log(JSLINT.errors[i].line + ': ' + JSLINT.errors[i].reason);
}
});
编辑:忘了说,我在设置中声明了 this.code = myFunction.toString();
。
它在 Chrome 中运行良好,所以我 promise 并继续愉快地编码。当我在 FF 中尝试时,我发现 FF 在将函数转换为字符串时似乎会去除函数中的所有空白,因此失败。
我在本地编码和测试,所以使用 AJAX 下载 JS 文件并不是一个真正的选择。谁能想到更好的选择,或者这完全是浪费时间? (请忽略 JSLint 作为一个整体的优点或缺点......那是为了不同的讨论)
最佳答案
你的开发环境是什么? Jslint 可以集成到常见的 IDE 中,例如 Eclipse 和(我很确定)Visual Studio。我认为将它放入单元测试是更好的选择,即使它在单元测试中运行良好。
否则,为了坚持使用单元测试方法,也许您可以设置一个条件,以便仅在 Chrome 中运行 Jslint 测试 - Jslint 检查的内容不需要在多个浏览器中进行测试。
关于javascript - 我的单元测试中的 JSLint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7710826/