コンポーネント props のテストは、React コンポーネントの信頼性と機能を確保する上で重要な側面です。私は酵素のサプライヤーとして、React アプリケーションをテストするための効果的なツールとテクニックを提供することの重要性を理解しています。このブログ投稿では、React の人気のある JavaScript テスト ユーティリティである Enzyme を使用してコンポーネント プロパティをテストする方法に関する貴重な洞察を共有します。
酵素を理解する
Enzyme は、Airbnb によって開発された JavaScript テスト ユーティリティです。 React コンポーネントのテストを容易にする一連のテスト ユーティリティを提供します。 Enzyme を使用すると、jQuery と同様の方法で React コンポーネントの出力を操作、トラバース、クエリすることができます。浅いレンダリング、完全な DOM レンダリング、静的レンダリングなどのさまざまなレンダリング モードをサポートしているため、コンポーネントを柔軟にテストできます。
テスト環境のセットアップ
Enzyme を使用してコンポーネント プロパティのテストを開始する前に、テスト環境をセットアップする必要があります。開始する手順は次のとおりです。
- Enzyme とそのアダプターをインストールする: npm または Yarn を使用して Enzyme とそのアダプターをインストールできます。たとえば、React 16 を使用している場合は、次のようにインストールする必要があります。
酵素そして酵素アダプター反応-16。
npm install --save-dev 酵素酵素アダプター反応-16
- アダプターを構成する: テスト セットアップ ファイルで、酵素アダプターを構成します。以下に例を示します。
「酵素」から酵素をインポートします。 'enzyme-adapter-react-16' からアダプターをインポートします。 Enzyme.configure({ アダプター: 新しいアダプター() });
浅いレンダリングによるコンポーネント プロップのテスト
浅いレンダリングは、その子をレンダリングせずにコンポーネントを「1 レベルの深さ」でレンダリングできる技術です。これは、個々のコンポーネントを個別にテストする場合に役立ちます。以下は、浅いレンダリングを使用してコンポーネントの小道具をテストする方法の例です。
React を「react」からインポートします。 import { 浅い } から '酵素'; MyComponent を './MyComponent' からインポートします。 description('MyComponent', () => { it('正しい props でレンダリングする必要があります', () => { const props = { title: 'テスト タイトル', description: 'テストの説明' }; const Wrapper =shallow(<MyComponent {...props} />); Expect(wrapper.prop('title')).toBe('テスト タイトル'); Expect(wrapper.prop('説明')).toBe('テストの説明'); }); });
この例では、に渡したい props を含むオブジェクトを作成しています。マイコンポーネント。次に使用します浅いこれらのプロパティを使用してコンポーネントをレンダリングします。最後に、小道具メソッドを使用して、プロパティにアクセスし、その値についてアサーションを行います。


プロップタイプのテスト
プロパティのタイプは、コンポーネントが予期するプロパティのタイプを文書化して強制する方法です。 Enzyme を使用すると、コンポーネントが prop タイプを正しく処理しているかどうかをテストできます。以下に例を示します。
React を「react」からインポートします。 'prop-types' から PropTypes をインポートします。 import { 浅い } から '酵素'; const MyComponent = ({ title }) => ( <div>{title}</div> ); MyComponent.propTypes = { タイトル: PropTypes.string.isRequired }; description('MyComponent', () => { it('プロップが欠落しているため警告をスローする必要があります', () => { console.error = jest.fn();shallow(<MyComponent />); Expect(console.error).toHaveBeenCalled(); }); });
この例では、is.fn()スパイするコンソールエラー方法。次に、必要なパラメータを渡さずにコンポーネントをレンダリングします。タイトル小道具。 prop タイプの検証が失敗した場合、警告がコンソールに記録され、次の場合にテストは合格します。コンソールエラーメソッドが呼び出されました。
完全な DOM レンダリングによるプロップのテスト
完全な DOM レンダリングは、コンポーネントとその子の間の相互作用をテストする必要がある場合、またはより現実的な環境でコンポーネントの動作をテストする必要がある場合に役立ちます。完全な DOM レンダリングを使用してコンポーネント プロパティをテストする方法の例を次に示します。
React を「react」からインポートします。 import { マウント } から '酵素'; MyComponent を './MyComponent' からインポートします。 description('MyComponent', () => { it('完全な DOM レンダリングを使用して正しい props でレンダリングする必要があります', () => { const props = { title: 'テスト タイトル', description: 'テスト説明' }; const Wrapper = mount(<MyComponent {...props} />); Expect(wrapper.prop('title')).toBe('テスト タイトル'); Expect(wrapper.prop('説明')).toBe('テストの説明'); }); });
この例では、マウントの代わりのメソッド浅い。のマウントメソッドは、コンポーネントとその子を実際の DOM にレンダリングします。これにより、より現実的な環境でコンポーネントの動作をテストできるようになります。
静的レンダリングによるプロップのテスト
静的レンダリングは、コンポーネントを DOM にマウントせずに、コンポーネントの HTML 出力を生成する必要がある場合に便利です。以下は、静的レンダリングを使用してコンポーネント props をテストする方法の例です。
React を「react」からインポートします。 import { render } from 'enzyme'; MyComponent を './MyComponent' からインポートします。 description('MyComponent', () => { it('静的レンダリングを使用して正しい props でレンダリングする必要があります', () => { const props = { title: 'テスト タイトル', description: 'テスト説明' }; const Wrapper = render(<MyComponent {...props} />); Expect(wrapper.find('h1').text()).toBe('テスト タイトル'); Expect(wrapper.find('p').text()).toBe('テストの説明'); }); });
この例では、与えるコンポーネントの HTML 出力を生成するメソッド。次に、jQuery のようなセレクターを使用して出力をクエリし、プロパティに関するアサーションを行うことができます。
現実世界のアプリケーションと関連製品
現実の世界では、高品質の React アプリケーションを構築するには、コンポーネントの props をテストすることが不可欠です。当社では、酵素を提供するだけでなく、開発およびテストのプロセスを強化できるさまざまな関連製品も提供しています。たとえば、ニコチンアミドモノヌクレオチド、潜在的な健康上の利点があり、さまざまな用途に使用できます。もご用意しております工場供給の有機乾燥アボカドパウダー、天然で栄養価の高い成分です。産業用アプリケーションについては、高品質テレピン油/テレピン油工場出荷時の価格/鉱物テレピン油、製造業で広く使用されています。
結論
Enzyme を使用してコンポーネントの小道具をテストすることは、React 開発者にとって必須のスキルです。浅いレンダリング、完全な DOM レンダリング、および静的レンダリングを使用すると、さまざまなシナリオでコンポーネントをテストし、コンポーネントが期待どおりに動作することを確認できます。初心者でも経験豊富な開発者でも、これらのテクニックをマスターすると、より信頼性が高く保守しやすい React アプリケーションを構築できるようになります。
Enzyme または当社のその他の製品の購入にご興味がございましたら、調達に関するご相談のためお気軽にお問い合わせください。当社は高品質の製品と優れた顧客サービスを提供することに尽力しています。
参考文献
- エアビーアンドビー。 (nd)。 Enzyme - React 用の JavaScript テスト ユーティリティ。 https://enzymejs.github.io/enzyme/ から取得
- 反応してください。 (nd)。 React - ユーザー インターフェイスを構築するための JavaScript ライブラリ。 https://reactjs.org/ から取得
- 冗談。 (nd)。 Jest - 楽しい JavaScript テスト。 https://jestjs.io/ から取得