JavaScript の世界では、…まあ、ほとんどすべてのことに対してたくさんのオプションがあります。 今日は、テスト ツールに焦点を当て、「最高の JavaScript フレームワークは何か」という質問に答えます。
最も人気のある JavaScript テスト フレームワークの 5 つについて説明し、記事の終わりには、最も良いと思うものを選択することになります。 始めましょう。
テスト フレームワークとは何か
フレームワークのリストに飛び込む前に、テスト フレームワークが何であるかを理解することが重要です。 テストフレームワークは、少なくとも
- テストケースを書き、テストスイートでそれらを組織するための規則または規約。
- 表示およびフォーマットされたテストの結果。
Five JavaScript Testing Frameworks Worth Checking Out
今までに、テスト フレームワークとは何か、なぜそれが必要なのかをしっかりと把握したはずです。
Mocha
Mocha は、時々 MochaJS とも呼ばれ、Node.js とブラウザの両方で動作するテストフレームワークです。 2011 年にリリースされ、それ以来 JavaScript の世界で最も人気のあるテスト フレームワークの 1 つとなっています。 しかし、State of JavaScript レポートによると、Mocha の人気はここ数年で減少傾向にあります。 それは、正確なレポートと、同時に、捕捉されなかった例外を正しいテストケースにマッピングすることを可能にします。 Mocha フレームワークには、非常に柔軟な構成があります。 アサーション、モッキングなどの機能で特に必要なライブラリと組み合わせることができます。
このような柔軟性の欠点は、Mocha の初期設定に多くの作業を必要とすることです。
公式サイト: mochajs.org
Repository: github.com/mochajs/mocha
Puppeteer
Puppeteer は、ユーザーがヘッドレス Chrome または Chromium ブラウザを制御できる Node.js のライブラリである。 そうすることで、通常のブラウザを使用して手動で実行するようなテストを自動化することが可能です。 このプロジェクトのページでは、実行可能なテストの例をいくつか挙げています:
- Generate screenshots and PDFs of pages.
- Crawl an SPA (single-page application) and generate pre-rendered content (“SSR” ).
- フォーム送信、UI テスト、キーボード入力などの自動化.
- 最新の自動テスト環境を作成する.。 最新の JavaScript とブラウザーの機能を使用して、最新バージョンの Chrome で直接テストを実行します。
- サイトのタイムライン トレースをキャプチャして、パフォーマンス問題の診断に役立ちます。
- Chrome拡張機能をテストします。
- Testimから、Puppeteer用の無料のレコーダーをリリースしました。 9279>
Official site: developers.google.com/web/tools/puppeteer
Repository: github.com/puppeteer/puppeteer
Jasmine
Jasmine は JavaScript BDD (behavior-driven development) テスト フレームワークであり、テストを始めるために必要となるほぼすべてのものが既に付属しています。 例えば、これらの機能のためにサードパーティのツールをインストールする必要がある Mocha とは異なり、アサーションとスパイによるテスト ダブルが組み込まれています。
しかし、Jasmine は柔軟性もあり、多数の追加のテスト ツールとシームレスに統合できます。
公式サイト: jasmine.github.io/
Repository: github.com/jasmine/jasmine
QUnit
QUnit はもともとjQueryプログラミングライブラリの一部だったものです。 John Resig は、jQuery、jQuery UI、および jQuery Mobile をテストするために作成しました。 2008 年に、QUnit は jQuery コードベースから抽出され、スタンドアロン フレームワークとしてリリースされましたが、動作させるにはまだ jQuery が必要でした。 2009 年に、彼らはそれを修正し、QUnit を最終的に jQuery から独立させました。
もともと jQuery をターゲットにしていたにもかかわらず、QUnit は現在、あらゆる JavaScript コードをテストでき、クライアントとサーバー側の両方の環境をサポートする汎用フレームワークになっています。 QUnit は迅速で簡単なセットアップを備えています。
公式サイト: qunitjs.com
Repository: github.com/qunitjs/qunit
Jest
Jest はシンプルさに焦点を当てた JavaScript 用のテストフレームワークです。 Facebook によってリリースされた Jest は、設定不要ですぐに動作することを目指しています。
Jest の「開始」ページを見てみると、複雑な設定や追加のインストールなしに、インストール、最初のテストの記述、および実行が数分のうちにできることがわかります。 Jest の別の利点は、その印象的なパフォーマンスです。
Jest は主に React アプリケーションのテストに使用されますが、だからといって、フレームワークで書かれたアプリケーションのテストにのみ使用するように制限されているわけではありません。
公式サイト: jestjs.io/
Repository: github.com/facebook/jest
目立った欠番
なぜいくつかの有名な JavaScript テストツールがリストに含まれていないのかと思われるかもしれません。 Karma、Sinon、および Chai などのツールは、リストに載せるのに十分なほど人気があると感じているのかもしれません。
簡単に言うと、私たちはリストをできるだけ簡潔なものにしたかったのです。 そのために、厳密にはフレームワークではないテスト ツールをリストに含めないことにしました。 つまり、Karma のような超人気ツールがリストに入らなかった理由はそれです:それはテストランナーであり、フレームワークではありません。 同じ理由が、Sinon (モッキング ツール) や Chai (アサーション ライブラリ) にも当てはまります。
Puppeteer はこのリストにまったく当てはまらないという意見があるかもしれませんが、私もある程度は同意します。 つまり、他のすべてのツールは、ユニット テスト スタイルのテストの実行により適したフレームワークであり、Puppeteer はよりブラウザ自動化ツールなのです。 しかし、人の介入なしに実行される自動テストを設計できるという意味では、テストフレームワークであることに変わりはありません。 ベストな JavaScript テストフレームワークは何か?
JavaScript の 5 つのテストフレームワークを紹介しました。 今こそ、記事のタイトルの約束を果たし、ベストなものを選択する時です。 そのために、4 つの基準 (コスト、インストール、セットアップの容易さ、および学習曲線) に従ってフレームワークを判断するつもりです。
Evaluating the Frameworks
Cost
最初の基準は確かに、評価するのに最も簡単なものです。 ここで取り上げたフレームワークはすべてオープンソースのプロジェクトなので、(ビールのように)無料でダウンロードして使用することができます。 つまり、明確な勝者は存在しないのです。
インストール
上記のすべてのツールのインストールはかなり簡単です。 しかし、いくつかのツールは追加のインストール オプションを提供します。
たとえば、npm と Yarn の他に、スタンドアロン ダウンロードとして QUnit をインストールすることができます。 しかし、その場合、この資産を保存して管理する必要があります。 代わりに、jQuery CDN でホストされているバージョンを使用することができます。 Jasmine も、Node に依存しないスタンドアロン バージョンを提供しており、ブラウザーを使用して仕様を実行することができます。 私たちはそう考えています。 インストールの容易さだけを基準に選ぶと、もう1つの引き分けになるでしょう。 しかし、これまで見てきたように、QUnitとJasmineはスタンドアロン・ライブラリとして使用できるため、より多くの選択肢を提供します。 この追加された柔軟性は有用でしょうか? しかし、私たちにとっては、QUnit と Jasmine が勝者です。
Winners: QUnit と Jasmine
セットアップの容易さ
さて、セットアップの容易さについて見てみましょう。 初期セットアップに関しては、ここでは明確な勝者がいます。 Jest です。 このフレームワークはゼロコンフィグ使用を約束し、その約束を実行します。 もちろん、任意の設定を行うことはできますが、テスト用フレームワークをインストールし、設定やさらなるツールのインストールなしに、約 2 分で実際のテストが実行されるのは素晴らしいことです。 Jest
ラーニング カーブ
最後に、ラーニング カーブについてです。 ここでもJestを選ぶしかないでしょう。 Jest は幅広い API を備えており、他のフレームワークほど多くのサードパーティ製ツールを必要としないため、必然的に学習曲線はそれほど急にはなりません。 Jest
Here’s the Winner
5 つの JavaScript テスト フレームワークをカバーし、4 つの基準でそれらを分析した後、勝者を選ぶ時が来ました。 だからといって、他のツールを試してはいけないというわけではありません。 逆に、できるだけ多くの実験と練習をすることが、学ぶための最良の方法だからです。