javascript - 我的单元测试中的 JSLint

标签 javascript unit-testing jslint

我根据 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/

相关文章:

javascript - 为什么我的 ES6(使用 Babel)类说 `this` 在实例方法中未定义?

unit-testing - 禁用 grails 命令对象中的验证约束以进行单元测试(使用 Spock)

typescript - TypeScript 代码上的 JSlint - 它还能教我写出更好的代码吗?

javascript - 一次 onClick 实现多种功能

javascript - 未应用欧芹选项

javascript - Angular Testing $httpBackend 意外请求和正则表达式未定义

unit-testing - Jasmine:每个 "it"一个匹配器还是多个?

ubuntu - Moo Tools JS Lint

javascript - JavaScript 中关键字 'new' 有什么副作用?

Javascript:刷新父页面而不完全重新加载