プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • React
  • 【React】テスト手法概要、Next.jsへのcypressの導入方法など
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【React】テスト手法概要、Next.jsへのcypressの導入方法など

02.11

  • miyabisan2
  • コメントを書く

この記事は2分で読めます

テストの種類

Unitテスト

コンポーネント単位のテスト、親のコンポーネントが使われている場合は親コンポーネントをモック化して切り離してテストします。(擬似的な関数やpropsを受け取るようにします。)

使えるライブラリ

以下どちらかの組み合わせで行うのが一般的です。

  • Jest + React-Testing-Library
  • Jest + Enzyme

Integrationテスト

Reduxのストアにアクセスしながらコンポーネントをテストします。

E2Eテスト(end to end)

ブラウザがアプリケーションを操作しているようなテストを行います。

使えるツール

  • cypress.io

テストライブラリの種類

Jest

テストランナーとしてテストに関わる基本的な機能を提供してくれます。

なお、React公式が推奨しているテストライブラリなので「react-create-app」とかをインストールするとデフォルトで入っています。

React-Testing-Library

  • 2018年にリリースされました。
  • Enzymeに取って代わるライブラリです。
  • ユーザー視点でテストを行います。
  • なお、React公式が推奨しているテストライブラリなので「react-create-app」とかをインストールするとデフォルトで入っています。

Enzyme

  • 2015年にリリースされました。
  • コンポーネントの内部を詳細にテストしたい場合に使うのでUnitテストに向いています。
  • Hooks(useEffectなど)のテストと相性が悪いです。

cypress.io(サイプレス)

ReactのE2Eテストツールとしてよく使われています。

本記事はcypress10.1.0にて検証しています。(9以前とは結構書き方が変わっていますので注意しましょう。)

インストール

1
yarn add -D cypress

package.jsonに起動コマンドを追加

1
2
3
4
  "scripts": {
    "cy:open": "cypress open",
    "cy:run": "cypress run"
  },

cypress open

初回起動時はこれで起動することで設定ファイルなどを自動生成することができます。

また、実際にブラウザ上で動きを見ながらE2Eテストを実行することができます。

cypress run

コマンドライン上でE2Eテストをバックグラウンドで実行してくれます。

ターミナルで以下のコマンドを実行

1
yarn cypress

そうするとcypressの設定ファイルなどが自動生成されます。

設定

cypress/e2e/(任意のファイル名).spec.cy.ts

任意のファイルを作ります。以下のような記述をします。

1
2
3
4
5
6
7
8
9
10
11
describe("empty spec", () => {
  // 以下はitを実行する前に共通で実行する処理になります。
  beforeEach(() => {
    cy.visit("http://localhost:3000");
  });
  it("passes", () => {
    cy.get('[id="player"]').should("be.visible");
  });
});
 
export {}; // TypeScriptの場合これがないとエラーになります。

実行方法

  1. Next.jsのローカルサーバーを事前に起動しておく。(Next.jsであれば「yarn dev」など)
  2. 「yarn cypress」でcypress起動
  3. cypressのUI上の「Specs」の「(任意のファイル名).spec.cy.ts」をクリックし、実行します。
スポンサーリンク
  • 2021 02.11
  • miyabisan2
  • コメントを書く
  • React
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2021 02.27

    【React】TypeScriptで用意されている型一覧

  2. 2022 03.06

    【React】「CSSの選択肢」(Pure CSS、CSS Modules、CSS in JSなど)

  3. 2021 02.11

    【React】props、「モック」を使ったテスト、React Hooksのテスト

  4. 2021 06.05

    【React】「React Query」の「useQuery」、ステータスについて

  5. 2021 02.08

    【Redux】「Reducer」、「Action」の実装方法

  6. 2021 05.30

    【React】「React Query」について

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【React】「material-ui」について

【React】「react-testing-libra…

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー