JavaScript コードの量が増えている大規模な Web アプリケーションに取り組んでいるときに、コードの品質を向上させる方法についてブレインストーミング セッションを行いました。
最初のアイデアの 1 つは、単体テストを導入することでした。これは長期的な目標です。ただし、回帰の最も一般的な原因である DOM の変更とブラウザー固有の問題は修正されません。
単体テストは、モック化された DOM のない環境で実行され、ページ上にはありません。
私が探しているのは、次のようにコードにプラグインできるアサーション フレームワークです。
var $div = $("div.fooBarClass");
assertNotEmpty($div);
$div.fooBarAction();
これを実行できるアサーション フレームワークを見つけましたが、それらはすべて、コンソールまたは DOM にログインするか、ばかげたポップアップを開くかのいずれかです。これらのどれも (数千の) 自動化されたテストと連携して動作しません。 私が探しているのは、AJAX を介して失敗したアサーションをログに記録するランタイム アサーション フレームワークです! 理想的には、次のようにする必要があります。
- 一般的なアサーションが組み込まれています。
- JQuery モジュール、クロージャと統合します。
- (Ajax 経由で) アサーション、ファイル名、ページ、行番号、失敗の原因、環境の事前構成変数 (ブラウザー、リリース バージョンなど) をログに記録します。
- 失敗した場合のコールバックをサポートします。(これを実行できるアサーション フレームワークがあれば、Ajax 部分を実行するコールバックを喜んで作成します。)
- すべてのブラウザでうまく動作します。
- 生産リリースから除外するのは簡単です。
- 維持されたコードベース。