プログラミングマガジン

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

  • ホーム
  • React
  • 【React】「react-testing-library」の「入力テスト」
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【React】「react-testing-library」の「入力テスト」

02.11

  • miyabisan2
  • コメントを書く

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

テキストボックスへの入力テスト

testing-library14からはusereventはsetupを事前にするように変更になり非同期関数になりました。(13まではsetupは不要で同期関数でした。)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import React from "react";
import { render, screen, cleanup } from "@testing-library/react";
import userEvent from "@testing-library/user-event";
import Input from "./Input";
 
const user = userEvent.setup()
 
describe("入力", () => {
  it("入力テスト", () => {
    render(<Input />);
    const inputValue = screen. getByRole("textbox");
    await user.type(inputValue, "test");
    expect(inputValue.value).toBe("test");
  });
});

await user.type(inputValue, "test");

第一引数で指定したテキストボックスに対して第二引数の「test」という文字列を入力していることをシミュレートすることができます。ちなみに、「type」とは型という意味ではなく、ユーザーがタイピングするという意味のtypeです。

expect(inputValue.value).toBe("test");

toBeというマッチャを使えば値の一致をチェックすることができます。

セレクトボックスへの入力テスト

1
2
3
4
5
<select multiple id="id名">
   <option value="1">A</option>
   <option value="2">B</option>
   <option value="3">C</option>
</select>

セレクトボックスへの入力の場合は以下のように記述します。

1
2
await user.selectOptions(screen.getByTestId('id名'), 'optionのvalueの値');
expect(screen.getByTestId('id名').selected).toBe(true)

入力解除

1
2
await user.deselectOptions(screen.getByRole('id名'),'optionのvalueの値')
expect(screen.getByTestId('id名').selected).toBe(false)

入力後にフォーカスを外す。

1
await user.tab();
スポンサーリンク
  • 2021 02.11
  • miyabisan2
  • コメントを書く
  • React
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2023 09.28

    StoryBookの基本

  2. 2021 01.23

    【React】「props」について

  3. 2021 02.08

    【Redux】Reduxの基本と動作の仕組み、3原則(単一情報源、イミュータブル、純粋関数)

  4. 2022 03.06

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

  5. 2022 10.08

    【Next.js】「Hasura」と「Apollo Client」の連携

  6. 2021 06.20

    【JavaScript】「APIモックライブラリ」の比較

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

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

返信をキャンセルする。

【React】「React-Testing-Libra…

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

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 ©  プログラミングマガジン | プライバシーポリシー