ジェストとは何ですか? Jestの基本的な使い方
この記事の内容は、Jest とは何ですか? Jest 関連の知識の紹介は、必要な友人に参考にしていただけると幸いです。
1 Jest とは何ですか?
Jest
Jest は、アサーション、JSDom、これは、開発者が必要とするカバレッジ レポートやその他のテスト ツールを備えた、ほぼ構成が不要なテスト フレームワークです。また、Facebook のオープンソース フロントエンド フレームワークである React のテストにも非常に適しています。
2 Jest のインストール
2.1 package.json の初期化
シェルに次のコマンドを入力して、フロントエンド プロジェクトを初期化し、パッケージを生成します。 json:
npm init -y
2.2 Jest と関連する依存関係をインストールする
シェルに次のコマンドを入力して、テストに必要な依存関係をインストールします:
npm install -D jest babel-jest babel-core babel-preset-env regenerator-runtime
babel-jest、babel-core 、regenerator-runtime、babel-preset-env のこれらの依存関係は、ES6 の構文機能を単体テストに使用できるようにするためのものです。モジュールをインポートするために ES6 によって提供されるインポート メソッドは、Jest 自体ではサポートされていません。
2.3 .babelrc ファイルを追加します
プロジェクトのルート ディレクトリに .babelrc ファイルを追加し、ファイル内の次の内容をコピーします。
{ "presets": ["env"] }
2.4 package.json スクリプトでのテスト
package.json ファイルを開き、スクリプトの下の test の値を jest:
"scripts": { "test": "jest" }
3 に変更します。最初の Jest テストを作成します。 ##src ディレクトリと test ディレクトリおよび関連ファイルを作成します
プロジェクトのルート ディレクトリに src ディレクトリを作成し、src ディレクトリに function.js ファイルを追加します
テストを作成しますプロジェクトのルート ディレクトリにディレクトリを作成し、テスト ディレクトリに function.test.js ファイルを作成します。
Jest は、プロジェクト内の .spec.js または .test.js ファイルを使用して名前が付けられたすべてのテスト ファイルを自動的に検索し、実行します。通常、テスト ファイルを作成します。従うべき命名規則は次のとおりです: テスト ファイルのファイル名 = テスト対象のモジュールの名前。たとえば、テスト対象のモジュールは function.js です。対応するテスト ファイルの名前は、functions.test.js です。
src/functions.js にテスト済みモジュールを作成します
export default { sum(a, b) { return a + b; } }
test/functions.test.js ファイルにテスト ケースを作成します
import functions from '../src/functions'; test('sum(2 + 2) 等于 4', () => { expect(functions.sum(2, 2)).toBe(4); })
npm run test を実行します (Jest)次のメッセージがシェルに出力されます:
PASS test/functions.test.js √ sum(2 + 2) 等于 4 (7ms) Test Suites: 1 passed, 1 total Tests: 1 passed, 1 total Snapshots: 0 total Time: 4.8s
expect(functions.sum(2, 2)).toBe( 4) はアサーションです。Jest は、テストされたメソッドをラップしてオブジェクトを返すための関数を提供します。このオブジェクトには、アサーションを簡単に行うための一連のマッチャーが含まれています。複数のマッチャーが関与する、一般的に使用される Jest アサーションをいくつか紹介します。
.not
//functions.test.js import functions from '../src/functions' test('sum(2, 2) 不等于 5', () => { expect(functions.sum(2, 2)).not.toBe(5); })
.not 修飾子を使用すると、結果が特定の値と等しくない場合の状況をテストできます。これは英語の構文とほぼ同じであり、理解しやすいです。 。
.toEqual()
// functions.js export default { getAuthor() { return { name: 'LITANGHUI', age: 24, } } }
// functions.test.js import functions from '../src/functions'; test('getAuthor()返回的对象深度相等', () => { expect(functions.getAuthor()).toEqual(functions.getAuthor()); }) test('getAuthor()返回的对象内存地址不同', () => { expect(functions.getAuthor()).not.toBe(functions.getAuthor()); })
.toEqual マッチャーはオブジェクトのすべての属性と属性値が等しいかどうかを再帰的にチェックしますので、アプリケーションの種類を比較したい場合は .toEqual を使用してください。 .toBe の代わりにマッチャーを使用します。
.toHaveLength
// functions.js export default { getIntArray(num) { if (!Number.isInteger(num)) { throw Error('"getIntArray"只接受整数类型的参数'); } let result = []; for (let i = 0, len = num; i < len; i++) { result.push(i); } return result; } }
// functions.test.js import functions from '../src/functions'; test('getIntArray(3)返回的数组长度应该为3', () => { expect(functions.getIntArray(3)).toHaveLength(3); })
.toHaveLength は、文字列型と配列型の長さが期待どおりかどうかをテストするのに便利です。
.toThrow
// functions.test.js import functions from '../src/functions'; test('getIntArray(3.3)应该抛出错误', () => { function getIntArrayWrapFn() { functions.getIntArray(3.3); } expect(getIntArrayWrapFn).toThrow('"getIntArray"只接受整数类型的参数'); })
.toThorw を使用すると、テスト対象のメソッドが期待どおりに例外をスローするかどうかをテストできますが、これを使用するときに注意する必要があるのは、次のような関数を使用する必要があるということです。上記の getIntArrayWrapFn と同様に、関数のラッパーを作成します。そうしないと、関数がスローされるため、アサーションは失敗します。
.toMatch
// functions.test.js import functions from '../src/functions'; test('getAuthor().name应该包含"li"这个姓氏', () => { expect(functions.getAuthor().name).toMatch(/li/i); })
.toMatch は正規表現を渡します。これにより、文字列型の正規一致を実行できます。
5 非同期関数のテストaxios のインストール
ここでは、リクエスト処理に最も一般的に使用される http リクエスト ライブラリ axios を使用しますnpm install axios
http を書き込みますリクエスト関数
http://jsonplaceholder.typicode.com/users/1,
これは、JSONPlaceholder によって提供される模擬リクエスト アドレスです
JSONPlaceholder
// functions.js import axios from 'axios'; export default { fetchUser() { return axios.get('http://jsonplaceholder.typicode.com/users/1') .then(res => res.data) .catch(error => console.log(error)); } }
// functions.test.js import functions from '../src/functions'; test('fetchUser() 可以请求到一个含有name属性值为Leanne Graham的对象', () => { expect.assertions(1); return functions.fetchUser() .then(data => { expect(data.name).toBe('Leanne Graham'); }); })
上記では、expect.assertions(1) を呼び出しました。これにより、非同期テスト ケースでアサーションがコールバック関数で実行されることが保証されます。これは、非同期コードをテストする場合に非常に効果的です。
async と await を使用して非同期コードを合理化する
test('fetchUser() 可以请求到一个用户名字为Leanne Graham', async () => { expect.assertions(1); const data = await functions.fetchUser(); expect(data.name).toBe('Leanne Graham') })
もちろん、Babel をインストールしたので、非同期テスト コードを合理化するために async と await の構文を使用しないのはなぜでしょうか。すべてexpect.assertionsメソッドを呼び出す必要があることを忘れてください。
以上がジェストとは何ですか? Jestの基本的な使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 はじめに: 技術の継続的な発展により、音声認識技術は人工知能の分野の重要な部分になりました。 WebSocket と JavaScript をベースとしたオンライン音声認識システムは、低遅延、リアルタイム、クロスプラットフォームという特徴があり、広く使用されるソリューションとなっています。この記事では、WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法を紹介します。

WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー

JavaScript と WebSocket を使用してリアルタイム オンライン注文システムを実装する方法の紹介: インターネットの普及とテクノロジーの進歩に伴い、ますます多くのレストランがオンライン注文サービスを提供し始めています。リアルタイムのオンライン注文システムを実装するには、JavaScript と WebSocket テクノロジを使用できます。 WebSocket は、TCP プロトコルをベースとした全二重通信プロトコルで、クライアントとサーバー間のリアルタイム双方向通信を実現します。リアルタイムオンラインオーダーシステムにおいて、ユーザーが料理を選択して注文するとき

WebSocket と JavaScript を使用してオンライン予約システムを実装する方法 今日のデジタル時代では、ますます多くの企業やサービスがオンライン予約機能を提供する必要があります。効率的かつリアルタイムのオンライン予約システムを実装することが重要です。この記事では、WebSocket と JavaScript を使用してオンライン予約システムを実装する方法と、具体的なコード例を紹介します。 1. WebSocket とは何ですか? WebSocket は、単一の TCP 接続における全二重方式です。

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 はじめに: 今日、天気予報の精度は日常生活と意思決定にとって非常に重要です。テクノロジーの発展に伴い、リアルタイムで気象データを取得することで、より正確で信頼性の高い天気予報を提供できるようになりました。この記事では、JavaScript と WebSocket テクノロジを使用して効率的なリアルタイム天気予報システムを構築する方法を学びます。この記事では、具体的なコード例を通じて実装プロセスを説明します。私たちは

使用法: JavaScript では、insertBefore() メソッドを使用して、DOM ツリーに新しいノードを挿入します。このメソッドには、挿入される新しいノードと参照ノード (つまり、新しいノードが挿入されるノード) の 2 つのパラメータが必要です。

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

JavaScript で HTTP ステータス コードを取得する方法の紹介: フロントエンド開発では、バックエンド インターフェイスとの対話を処理する必要があることが多く、HTTP ステータス コードはその非常に重要な部分です。 HTTP ステータス コードを理解して取得すると、インターフェイスから返されたデータをより適切に処理できるようになります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法と、具体的なコード例を紹介します。 1. HTTP ステータス コードとは何ですか? HTTP ステータス コードとは、ブラウザがサーバーへのリクエストを開始したときに、サービスが
