テストフレームワークを選択するための基準のリストは何ですか?
1)構文
さまざまなテストフレームワークを調べると、構文がそれらすべての差別化要因であることがわかります。これは本当に快適に感じるものに依存します。
たとえば、qUnitはより宣言的なテストフレームワークです。そのAPIは、test、equals、strictEqual、deepEqualなどの関数で構成されています。
別のテストフレームワークであるmochaは、構造のようなより多くの文を読み取るという点で、rspecに似ています。そのAPIは、describe、it、assert.equalなどと呼ばれる関数で構成されています。
私の個人的な好みはqunitのような構造です。
2)機能-スタブ、スパイ、偽のサーバー、偽の時計など
Javascriptでテストを開始すると、特定のユースケースのテストに役立つテストフレームワークが必要な状況にすぐに気づくでしょう。例えば:
スパイ-これは、コードが必要なときに関数が関数を呼び出したかどうかを検出するのに役立ちます
スタブ-事前定義された動作を含むことを除いて、スパイに非常に似ています(例:スタブが呼び出されたときにfooを返します)
Fake Server-コードがAJAX呼び出しを発行し、AJAX呼び出しの応答を偽造したい場合、Fake Serverはテストをより簡単に行うのに役立ちます。
偽の時計-コードが日付または時刻に基づいて異なる反応をする場合、偽の時計は、テストの実行時間を正確に制御するのに役立ちます。
上記のすべての機能をサポートするJavaScriptフレームワークへの私の推奨はSinon.JSです。構文とフレームワークのようなqunitが好きなので、qunit AND Sinon.JSを使用します。qunitはアサーションを処理し、テストを実行します。Sinon.JSを使用すると、スタブ、スパイ、偽のサーバーの実行、および時計の偽造を行うことができます。
3)コミュニティサポート
テストフレームワークはコミュニティによってサポートされていますか?たとえば、grunt(ビルド環境ツール)は、ヘッドレスPhantomJSサーバーでのqunitの実行をサポートしています:https : //github.com/gruntjs/grunt-contrib-qunit。これにより、テストを簡単に作成でき、テストファイルを保存するたびに自動的に実行されます。
それらをすべて試すのは現実的ですか?
いいえ、それは実用的ではありません。代わりに、各フレームワークのWebサイトを調査し、テストに慣れているものと、テスト中にサポートするものを選択してください。
フォーラムなどの使用方法について、フォーラムなどをよく読んでください。
選択したフレームワークについて本を入手し、必要に応じて読み進めます。