Во время работы над большим веб-приложением с увеличением количества кода JavaScript мы провели мозговой штурм о том, как улучшить качество кода.
Одна из первых идей заключалась в том, чтобы ввести модульные тесты. Это будет долгосрочной целью; что, однако, не будет исправлять наиболее распространенные причины регрессии: изменения DOM и специфические проблемы браузера.
Тестирование модулей выполняется в среде с надстройкой без DOM и не находится на странице.
Я ищу структуру утверждения, которая может быть вставлена в код следующим образом:
var $div = $("div.fooBarClass");
assertNotEmpty($div);
$div.fooBarAction();
Я нашел фреймворки утверждения, которые могут это сделать, но все они либо заходят в консоль, либо в DOM, либо открывают глупые всплывающие окна. Ни одна из них не работает вместе с (тысячами) автоматизированных тестов. То, что я ищу, - это платформа утверждения времени выполнения, которая регистрирует неудавшееся утверждение через AJAX! В идеале это должно быть:
- Соблюдайте общие утверждения.
- Интеграция с модулями JQuery, закрытие.
- Записать (через Ajax) утверждение, имя файла, страницу, номер строки, причину сбоя, некоторые предварительно сконфигурированные переменные среды (браузер, версия выпуска и т.д.).
- Поддержка обратных вызовов в случае сбоев. (Если любая структура утверждения может просто сделать это, я с удовольствием захочу написать обратные вызовы, выполняющие часть Ajax.)
- Хорошо работать со всеми браузерами.
- Тривиальное исключение из выпуска продукта.
- Поддерживаемая база кода.