この記事では、FacebookにメンテナンスしたテストフレームワークであるJestを使用して、反応コンポーネントとプレーンJavaScript機能をテストするためのJestを使用して調査します。 反応固有の機能に移行する前に、簡単なJavaScript関数から始めます。 Jestは反応専用ではありません。 JavaScriptアプリケーションに十分に多用途です。ただし、その機能はUIテストに特に役立ち、Reactに最適です。
jestを使用して、反応コンポーネントとJavaScript関数をテストします。
、、)が含まれている
に存在します。 これらの関数は、Redux Reducers.に類似しています
app/state-functions.js
toggleDone
テスト駆動型開発(TDD):addTodo
deleteTodo
jestの紹介:
Facebookによって大幅に改善されたJestは、他のフレームワークと比較して合理化されたセットアップを提供します。その並列テストの実行およびウォッチモードは、テスト速度と効率を大幅に改善します。 Node.js内のブラウザのようなテストのためのJSDOMが含まれ、非同期テスト、モッキング、スパイ、スタブをサポートします。 インストールと構成:必要なパッケージをインストール:
ファイルが存在することを確認します(元の記事で提供されている例)。 jestはディレクトリでテストを期待しています(またはまたはで終了するファイル)。
ビジネスロジックのテスト:
npm install --save-dev jest babel-jest @babel/core @babel/preset-env @babel/preset-react
babel.config.js
の簡単なテストは、Jestの使用法を示しています
__tests__
.test.js
.spec.js
はオブジェクト/配列の比較に使用されますが、
または
toggleDone
テスト反応コンポーネントには、多くの場合、ビジネスロジックよりも包括的なテストが少なくなります。 酵素(またはReactチームが推奨する反応テストライブラリ)は、このプロセスを簡素化します。酵素と適切なアダプターをインストールします:
npm install --save-dev jest babel-jest @babel/core @babel/preset-env @babel/preset-react
setup-tests.js
を作成して、酵素を構成します:
import { toggleDone } from '../app/state-functions'; test('toggleDone completes an incomplete todo', () => { const startState = [{ id: 1, done: false, text: 'Buy Milk' }]; const finState = toggleDone(startState, 1); expect(finState).toEqual([{ id: 1, done: true, text: 'Buy Milk' }]); });
package.json
:setup-tests.js
:
npm install --save-dev enzyme @wojtekmaj/enzyme-adapter-react-17
Todo
コンポーネントレンダリングのテストが表示されます。 その後のテストでは、mount
を作成してfind
を作成し、イベントをトリガーし、jest.fn()
。simulate('click')
。
toBeCalledWith
Jestの速度、監視モード、および表現力豊かなAPIにより、強力なテストフレームワークになります。 この記事では、その利点の要約とさらに読む提案とともに、FAQがJESTを使用した反応コンポーネントのテストに関する一般的な質問に対処することで締めくくります。 FAQは
、反応テストレンダラー、プロップを使用したコンポーネントのテスト、およびコンポーネント内のテスト機能をカバーします。以上がJESTを使用して反応コンポーネントをテストする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。