JavaScript をリファクタリングする際には、リファクタリングがスムーズに進むよう、使いやすいテスト フレームワークを導入して、今後もテスト コードを通じて JavaScript ロジックの正しさを確認していきたいと考えています。
JsUnit (http://sourceforge.net/projects/jsunit/、http://www.jsunit.net/)
JsUnit は、JUnit に似た独立した JavaScript 単体テスト フレームワークであり、従来のテストを含めて簡単に始めることができます。 setUp 提供されるassert メソッドは、tearDown と同様に JUnit に似ていますが、assertNaN やassertUndefine などの JavaScript 固有のメソッドが追加されています。テスト ページでは、
に js ファイル jsUnitCore.js を導入する必要があります。
テスト スイートのサポート: addTestPage と addTestSuite が提供されます。
テスト ログのサポート: 警告、情報、デバッグの 3 つのログ レベルが含まれます。しかもログは次回のみ対応。
1,000 語では不十分ですが、一例を示します。
Js コード
//モジュール JS
function testWithMainProcess() {
assertEquals("Web 再生 URL", "##http://...##", webOnlinePlay());
}
プロジェクトコードの随所に Ajax 呼び出しがあり、単体テストを行うには、パイルが避けられないようです。 JQuery に適した QMock など、多くのモック ツールがあります。 http://xxx,
success: Function,
dataType: "jsonp"
})
.callFunctionWith({ feed : {entry : "data response" }});
この山は、ジェイソンが返す偽の ajax モックです: [feed:[entry:"data response"]] を見てください。使い方は、私が以前に体験した EasyMock とほぼ同じです。
JavaScript テスト フレームワークに興味がある学生は、JSpec などの他のテスト フレームワークについても学ぶことができます。
単体テスト コードをモジュールのパッケージ test.html に配置することをお勧めします。理想的な条件下でも、モジュールが個別にリリースされる場合、テスト ケースの信頼できるフロントエンド コードが付属します。
どの JavaScript コードから始めればよいですか?
1. 機能コード。このようなコードは良好な独立性を保証し、ステーキングを必要とせず、テストコストが低くなります。関数型コードの意味がわからない場合は、「関数型プログラミング」を参照してください。
2. 複雑なロジック。
TDD を試してみませんか?フロントエンド TDD は、より高度なスキルと人的要素に関する要件を必要とするため、チーム内で使用することはお勧めできません。いつかバックグラウンドの Java コードの TDD が完成したら、それを JavaScript コードに置き換えても本質的な違いはありません。
その効果が適切であれば、なぜ JavaScript UT を継続的インテグレーションの一部として ICP-CI に統合できないのでしょうか?