#このチュートリアルの動作環境: Windows 7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。JavaScript における単体テストは、プログラム モジュール (ソフトウェア設計の最小単位) の正当性をテストするテストであり、その目的は、プログラム モジュールを分離し、これらの個々のモジュールが正しいことを証明することです。単体テストにより、開発プロセスの早い段階で問題が確実に発見され、プログラマはコードの断片がまだ適切に動作しているかどうかを簡単に確認できます。
l QUnit フレームワーク
a) はじめにQUnit は、jQuery チームによって開発された JavaScript 単体テスト ツールで、強力で使いやすいです。現在、すべての JQuery コードは QUnit を使用してテストされており、ネイティブ JavaScript も QUnit を使用できます。 もともと、John Resig は jQuery の一部として QUnit を設計しました。 2008 年に、QUnit は独自の名前、ホームページ、API ドキュメントを持ち、他の人が単体テストに QUnit を使用できるようになりました。しかし、当時の QUnit はまだ jQuery に基づいていました。 QUnit が完全に独立して実行できるようになったのは 2009 年になってからです。 b) 利点非常に使いやすく、美しい外観と完全なテスト機能 (非同期テストを含む) を備えています。非常にシンプルで使いやすいです。 . 現在公開されています API は 19 個だけです; は JS を実行できる限り、他のソフトウェア パッケージやフレームワークに依存する必要はありません。QUnit 自体には JS ファイルと CSS ファイルが 1 つだけあります。もちろん、必要に応じて jQuery などの他のフレームワークと統合することもできます。; ブラウザでのテストをサポートするだけでなく、Rhino やnode.js などのバックエンドでのテストもサポートします。 c) 欠点自動化サポートが不十分で、Ant、Maven、自動ビルドなどのツールとの統合が難しく、主にブラウザーでのテストに使用されます。l Jasmine フレームワーク
a) はじめにJasmine はよく知られた JavaScript 単体テスト フレームワークであり、独立しています。明確で理解しやすい構文を備えた動作駆動型の開発フレームワーク。 動作駆動開発 (BDD): 開発者、QA、およびソフトウェア プロジェクトにおける非技術者やビジネス参加者間のコラボレーションを促進するアジャイル ソフトウェア開発テクノロジです。 BDD は、もともと 2003 年に Dan North によって命名されました。これには、テスト駆動開発への対応として、受け入れや顧客によるテストドライブなどの極端なプログラミング手法が含まれています。ここ数年で大きく発展しました。BDD の焦点は、利害関係者との議論を通じて、予想されるソフトウェアの動作を明確に理解することです。プログラマーでなくても読める自然言語でテスト ケースを作成することにより、テスト駆動開発アプローチを拡張します。動作駆動型の開発者は、ドメイン内で統一された言語とネイティブ言語を混合してコードの目的を説明します。これにより、開発者は技術的な詳細ではなく、コードをどのように記述するかに集中できるようになり、コード作成者の技術言語をビジネス顧客、ユーザー、利害関係者、プロジェクト マネージャーなどから分離する必要性も最小限に抑えられます。そして言語間を行き来します。
BDD プラクティスには次のものが含まれます。
l さまざまな関係者が達成したい長期目標を確立します。
l 機能インジェクション手法を使用して、これらの目標を達成するために必要な機能を計画します。
l アウトサイドインのソフトウェア開発アプローチを通じて、関係者を実装プロセスに統合します。
l 例を使用して、アプリケーションまたはコードの各単位の動作を説明します
l これらの例を自動化することで、迅速なフィードバックを提供し、回帰テストを実行します。
#l 「すべき」を使用してソフトウェアの動作を説明し、コードの責任を明確にし、コードに関する質問に答えます。 ソフトウェアの機能について質問する l 「ensure」を使用して、コード自体の有用性と他のユニット (要素) コードによってもたらされる限界的な有用性を区別するソフトウェアの責任を説明します。 l まだ書かれていない関連コード モジュールの代用としてモックを使用するBDD 機能インジェクション: 企業は、ビジネス上の利点をもたらす複数の異なるビジョンを持っている場合があります。利益とお金の節約、またはお金の保護。開発チームが現在の状況下で最適なビジョンであると判断した場合、そのビジョンをうまく実現するには追加の支援が必要になります。 次に、ビジョンの主な関係者を特定し、他の関係者を参加させます。各関係者は、ビジョンを達成するために何を達成する必要があるかを定義します。たとえば、法務部門は特定の規制を満たすことを要求する場合があります。マーケティング責任者は、ソフトウェアを使用するユーザーのコミュニティに参加したいと考えるかもしれません。セキュリティの専門家は、ソフトウェアが SQL インジェクション攻撃に対して脆弱でないことを確認する必要があります。 これらの目標を通じて、これらの目標を達成するために必要なトピックや機能のおおよそのセットが定義されます。たとえば、「ユーザーが貢献度の値を並べ替えられるようにする」または「トランザクションの監査」などです。これらのテーマから、ユーザーの機能やユーザー インターフェイスの最初の詳細を決定できます。 b) 利点動作駆動型開発に基づいたテスト フレームワークであり、その構文は自然言語に非常に近く、シンプルかつ明確で理解しやすいです。 Ant、Maven などと簡単に統合してテストを自動化できるほか、Jenkins などの継続的統合ツールとも簡単に統合でき、テスト結果の XML ドキュメントを生成できます。 これには豊富な API があり、ユーザーによる API の拡張もサポートされており、これは他のフレームワークではほとんどできません。 使い方は簡単で、js ファイルを 2 つ導入するだけですブラウザでのテストだけでなく、Rhino やnode.js などのバックエンド テストもサポートしています。 Ruby 言語に対する特別なサポートがあり、Ruby プロジェクトに簡単に統合できますc) 欠点ブラウザのテスト インターフェイスは QUnit ほど美しくありません。 。l JsTestDriver
a) はじめにJsTestDriver は、継続的ビルドと簡単に統合できる JavaScript 単体テスト ツールです。また、複数のブラウザでテストを実行できるため、TDD スタイルの開発が簡単に行えます。 JsTestDriver をプロジェクト内で構成すると、java ファイルの junit テストと同様に、JsTestDriver は js ファイルを直接実行して単体テストを実行できます。 JsTestDriver フレームワーク自体は JAVA jar パッケージであり、ローカルで実行してポートをリッスンする必要があります。 b) メリット一度に複数のブラウザをテストできる 利用方法は、サービス起動時にパラメータとして複数のブラウザのパスを渡すことです。モバイル デバイスを含む複数のマシン上のブラウザで実行できます。 テストは、レンダリングのために結果を DOM に追加する必要がなく、同時に多くのブラウザで実行でき、ブラウザは未変更のファイルをキャッシュから取得するため、迅速に実行されます。 。 HTML 添付ファイルは必要ありません。1 つ以上のスクリプトとテスト スクリプトを指定するだけで、テスト ランナーは実行時に空のファイルを作成します。 Ant、Maven などと簡単に統合してテストを自動化できるほか、Jenkins などの継続的統合ツールとも簡単に統合でき、テスト結果の XML ドキュメントを生成できます。 Eclipse プラグインと IntelliJ プラグインがあり、JUnit と同様に、これら 2 つの IDE で簡単にテストできます。 他のテスト フレームワークをサポートし、他のテスト フレームワークによって記述されたテスト コードをテストできます。たとえば、QUnit および Jasmine テスト コードを JsTestDriver テスト コードに変換できる対応するプラグインがあります。 c)不做的であること。生成された結果は十分直感的ではありません。 インストールや使用はJAVA環境に依存するので少し面倒です。l FireUnit
a) はじめに
FireUnit は、Firebug の Javascript に基づいた単体テスト フレームワークです。簡単に言うと、FireUnit は Firebug にタブ パネルを追加し、テストを記録および表示するためのいくつかの単純な JavaScript API を提供します。
b) メリット
シンプルで使いやすい
c) デメリット
機能が少なく、ソース内にテストコードが書かれることが多いコードはリアルタイムで表示できますが、効果は得られますが、結合が強すぎてクリーンアップが困難です
Firefox でのみ実行可能です
[関連する推奨事項: JavaScript の学習]チュートリアル######]######
以上がJavaScript 単体テストは何に使用されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。