使用するテストフレームワークを決定するにはどうすればよいですか?


8

状況はこれです。

私は小さな政府ITプロジェクトのジュニア開発者です。継続的な統合や自動テストフレームワークはありません。しかし、アイデアはこの種のものを開発すること/私たちの開発環境を改善することです。

この製品はデータ処理アルゴリズムであり、Webアプリケーションを介してエンドユーザーに情報を表示します。

そのため、WebアプリケーションのJavaScriptを変更する作業がたくさんあります。そのため、JavaScriptの単体テストを実装したいと考えています。

このスタックオーバーフローの質問を見て、javascriptのいくつかの異なるユニットテストフレームワークの概要を説明しました。

問題は、どのフレームワークを使い始めるかをどのように決めるのですか?

  • テストフレームワークを選択するための基準のリストは何ですか?
  • それらをすべて試すのは現実的ですか?
  • フォーラムなどの使用方法について、フォーラムなどをよく読んでください。

回答:


13

テストフレームワークを選択するための基準のリストは何ですか?

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サイトを調査し、テストに慣れているものと、テスト中にサポートするものを選択してください。

フォーラムなどの使用方法について、フォーラムなどをよく読んでください。 選択したフレームワークについて本を入手し、必要に応じて読み進めます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.