エンドツーエンド(E2E)テストは、アプリケーションの流れを最初から最後まで検証します。手動テストの代わりに、継続的な統合(CI)がこのプロセスを自動化します。コードを記述し、保存し、ツールが既存の機能を壊さないようにします。 Cypressは、特にReactのような最新のJavaScriptライブラリのために、このプロセスを簡素化する強力なE2Eテストフレームワークです。
テストアプリケーションの設定
このチュートリアルでは、サンプルTODOアプリケーションを使用しています。従うようにリポジトリをクローンします。
git clone [電子メール保護]:kinsomicrote/cypress-reacttutorial.git
ディレクトリに移動し、依存関係をインストールします。
CDサイプレス反応チュートリアル 糸インストール
サイプレスのインストール:
糸はサイプレスを追加します-DEV
オープンサイプレス:
node_modules/.bin/cypress open
アクセスしやすくするには、このスクリプトをpackage.json
に追加します。
「スクリプト」:{ 「サイプレス」:「サイプレスオープン」 }
yarn cypress
を実行してサイプレスを開きます。 yarn start
。
cypress/integration/init.spec.js
で基本的なテストを作成しましょう:
説明( 'cypress'、()=> { それ( 'は動作している'、()=> { 期待(true).to.equal(true); }); });
これは、サイプレスが機能していることを確認します。それでは、アプリにアクセスしてテストしましょう。
それ( 'アプリに訪問'、()=> { cy.visit( 'http:// localhost:3000'); });
URLの繰り返しを避けるために、 cypress.json
にベースURLを設定します。
{ 「baseurl」:「http:// localhost:3000」 }
これで、次のテストを簡素化できます。
それ( 'アプリに訪問'、()=> { cy.visit( '/'); });
フォームコントロールと入力をテストします
ユーザーインタラクションをテストするためにcypress/integration/form.spec.js
を作成します。
説明( 'form'、()=> { 前に(()=> { cy.visit( '/'); }); それ( '入力に焦点を合わせます'、()=> { cy.focused()。( 'have.class'、 'form-control'); }); それ( '入力を受け入れる'、()=> { const input = "サイプレスについて学ぶ"; cy.get( '。form-control') .Type(入力) 。 }); それ( 'dosis of todos'、()=> { cy.get( 'li')。 }); それ( '新しいtodoを追加します'、()=> { const input = "サイプレスについて学ぶ"; cy.get( '。form-control') .Type(入力) .type( '{enter}') .get( 'li') .should( 'have.length'、3); }); it( 'deletes a todo'、()=> { cy.get( 'li') 。初め() .find( '。btn-danger') 。クリック() .get( 'li') .should( 'have.length'、1); }); それ( 'すべてのtodosを削除'、()=> { cy.get( 'li') 。初め() .find( '。btn-danger') 。クリック() .get( 'li') 。初め() .find( '。btn-danger') 。クリック() .get('。No-Task ') 。 }); });
これらのテストでは、入力フォーカス、入力の受け入れ、初期TODOカウント、新しいTODOの追加、単一のTODOの削除、すべてのTODOの削除をカバーしています。
ネットワークリクエストのテスト
ネットワークリクエストのテストにより、データフェッチが正しく機能するようになります。たとえば、JSONプレースホルダーAPIを使用してください。
説明( 'request'、()=> { それ( 'APIからランダムユーザーを表示'、()=> { cy.request( 'https://jsonplaceholder.typicode.com/users') .should((respons)=> { expect(response.status).to.eq(200); 期待(Response.body).to.have.length(10); expect(response).to.have.property( 'headers'); expect(response).to.have.property( 'duration'); }); }); });
これにより、API応答ステータス、データの長さ、および応答プロパティが検証されます。
コマンドラインからの実行テスト
ターミナルからサイプレステストを実行します。
NPXサイプレスの実行
特定のテストを実行するには:
NPXサイプレスRUN -SPEC "Cypress/Integration/form.spec.js"
これにより、テスト結果のコマンドラインの概要が提供されます。より高度なコマンドラインオプションについては、サイプレスのドキュメントを参照してください。
結論
CypressはE2Eテストを簡素化し、開発者にとってアクセスしやすく、有益にします。このチュートリアルでは、基本的なテストから中間テスト手法を示しており、その機能をさらに調査することを奨励しています。より高度な機能とベストプラクティスについては、サイプレスのドキュメントを参照してください。
以上がサイプレスを使用して、Reactアプリケーションのテストを作成しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この投稿では、Blackle Moriは、CohostのHTMLサポートの限界を押し広げようとしている間に見つかったハックのいくつかを示します。あえてこれらを使用してください、あなたもCSS犯罪者とラベル付けされないようにしてください。

CSSを備えたカスタムカーソルは素晴らしいですが、JavaScriptを使用して次のレベルに物事を引き出すことができます。 JavaScriptを使用して、カーソル状態間で移行し、カーソル内に動的テキストを配置し、複雑なアニメーションを適用し、フィルターを適用できます。

2025年には、互いに互いに跳ね返る要素を伴うインタラクティブなCSSアニメーションは、CSSにPongを実装する必要はありませんが、CSSの柔軟性とパワーの増加はLee'の疑いを補強します。

CSSバックドロップフィルタープロパティを使用してユーザーインターフェイスをスタイルするためのヒントとコツ。バックドロップフィルターを複数の要素間でレイヤー化する方法を学び、それらを他のCSSグラフィカル効果と統合して、精巧なデザインを作成します。

まあ、SVG'の組み込みのアニメーション機能は、計画どおりに非推奨されることはありませんでした。確かに、CSSとJavaScriptは負荷を運ぶことができる以上のものですが、以前のようにSmilが水中で死んでいないことを知っておくのは良いことです

イェーイ、テキストワラップのジャンプを見てみましょう:サファリテクノロジーのプレビューにかなり着陸してください!しかし、それがChromiumブラウザーでの仕組みとは異なることに注意してください。

このCSS-Tricksアップデートは、アルマナック、最近のポッドキャスト出演、新しいCSSカウンターガイド、および貴重なコンテンツを提供するいくつかの新しい著者の追加の大幅な進歩を強調しています。

ほとんどの場合、人々はTailwind'の@Apply機能を紹介します。このように展示されたとき、@Applyはまったく有望な音をしません。だからobvio


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

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

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ホットトピック









