Я кодирую в соответствии со стандартами 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, поэтому я увлекся и продолжал весело кодировать. Когда я попробовал это в FF, я обнаружил, что FF, кажется, удаляет все пустое пространство из функций, когда он преобразует их в строки, поэтому он терпит неудачу.
Я кодирую и тестирую локально, поэтому использование AJAX для загрузки файла JS на самом деле не вариант. Кто-нибудь может придумать лучший вариант, или это просто пустая трата времени? (Игнорируя преимущества или недостатки JSLint в целом, пожалуйста ... это для другого обсуждения)