ライブラリクエリセレクタのテスト
今日はテストライブラリを調べます.これはユーザの視点からUIコンポーネントをテストするためのパッケージセットです.
我々はすでにそれが私たちのReact tests . (この記事を始めるために)
私たちは、このライブラリが主にセレクタライブラリであることを覚えておかなければなりません.
これは、特定のフレームワークやテストライブラリにバインドされていません.
たとえばテキストで何かを問い合わせるには:
テストライブラリの大部分は、クエリセレクタを使用する能力です.あなたは、例でここの上で1つを見ることさえできます.
DOMの要素をすばやく見つける方法であり、以下のタイプを使用できます. 主な違いは、どのようにクエリを実行するか、エラーをスローするか、何かを待つかどうかです.
そして、これらのそれぞれは、1つまたは複数の要素を必要とするかどうかを定義するオプションを持っています.
を使用してこれを定義することができます
一つの要素セレクタを使いたいとしましょう. 何も発見?エラーをスローします 1見つかった要素を返す もっと発見?誤りを解く 何も発見?NULLを返す 1見つかった要素を返す もっと発見?誤りを解く 何も発見?エラーをスローします 1見つかった要素を返す もっと発見?誤りを解く 基本的には
複数の要素については同じです.ただし、要素を返す代わりに、要素の配列を返します.
クエリの方法を知っているので、使用できるクエリの種類に飛び込むことができます.
バイロール
私たちは
The
例えば、次のHTMLセットアップがあれば
上記のように、特定のプレースホルダ値を持つ要素を照会するためにこれを使用できます.
これは、我々が使用している一般的に知られているテキストセレクタですprevious articles .
これは、DOMのテキスト要素のクエリに使用することができますし、それは超強力な正規表現を活用することができます.
名前が示すように、これは現在の表示値で要素を照会するために使用できます.
たとえば以下のHTMLを持っています.
Aを使用して要素をターゲットにするほど一般的に知られていないセレクタ
私は、あなたが質問セレクタのタイプとどのようにそれらの各々を使用するかについて何か新しいことを学んだことを望みます.
我々はさらにテストに飛び込むように、今後の記事を見てください.
私のブログを読んでくれてありがとう.私の電子メール会報を購読して、接続してくださいFacebook or
我々はすでにそれが私たちのReact tests . (この記事を始めるために)
私たちは、このライブラリが主にセレクタライブラリであることを覚えておかなければなりません.
これは、特定のフレームワークやテストライブラリにバインドされていません.
たとえばテキストで何かを問い合わせるには:
const defaultText = screen.getByText(/The counter is now on/g);
しかし、テストライブラリを使って検索した結果を確認するには、まだjestが必要です.expect(defaultText).toBeInTheDocument();
テストライブラリにおけるクエリセレクタ
テストライブラリの大部分は、クエリセレクタを使用する能力です.あなたは、例でここの上で1つを見ることさえできます.
DOMの要素をすばやく見つける方法であり、以下のタイプを使用できます.
get
find
query
そして、これらのそれぞれは、1つまたは複数の要素を必要とするかどうかを定義するオプションを持っています.
を使用してこれを定義することができます
By
or AllBy
セレクターの後ろ.一つの要素セレクタを使いたいとしましょう.
getBy
findBy
queryBy
getBy
and queryBy
同じことをしなさい.つだけ大きな違いがある.queryBy
我々がこれを待つことができるように、約束を返します.複数の要素については同じです.ただし、要素を返す代わりに、要素の配列を返します.
クエリの種類
クエリの方法を知っているので、使用できるクエリの種類に飛び込むことができます.
バイロール
私たちは
ByRole
たとえば、DOM内の特定の役割を持つ要素を検索するには、ボタンを問い合わせたい場合.const button = screen.getByRole('button');
BylabeltextThe
ByLabelText
クエリは、特定のテキストを持つラベルを見つけることができます.例えば、次のHTMLセットアップがあれば
<label>Name</label>
次のクエリを使用して、次のように選択できます.const label = screen.getByLabelText('Name');
Byplaceholdertext上記のように、特定のプレースホルダ値を持つ要素を照会するためにこれを使用できます.
const placeholder = screen.getByPlaceholderText('Enter your email');
本文これは、我々が使用している一般的に知られているテキストセレクタですprevious articles .
これは、DOMのテキスト要素のクエリに使用することができますし、それは超強力な正規表現を活用することができます.
const defaultText = screen.getByText(/The counter is now on/g);
const defaultText = screen.getByText('The counter is now on 0');
// etc
値名前が示すように、これは現在の表示値で要素を照会するために使用できます.
たとえば以下のHTMLを持っています.
<input type="text" id="lastName" value="Bongers" />
このようにこの要素を問い合わせます.const value = screen.getByDisplayValue('Bongers');
ByalTextByAltText
特定のAltタグを持つ要素を見つけるための簡単なテストケースです.const alt = screen.getByAltText('my amazing photo');
副題Aを使用して要素をターゲットにするほど一般的に知られていないセレクタ
title
属性.<i title="Delete"><Icon /></i>
const title = screen.getByTitle('Delete');
それからByTestId
, しかし、我々は次の記事のそれに関する詳細に入ります.結論
私は、あなたが質問セレクタのタイプとどのようにそれらの各々を使用するかについて何か新しいことを学んだことを望みます.
我々はさらにテストに飛び込むように、今後の記事を見てください.
読んでいただきありがとうございます、接続しましょう!
私のブログを読んでくれてありがとう.私の電子メール会報を購読して、接続してくださいFacebook or
Reference
この問題について(ライブラリクエリセレクタのテスト), 我々は、より多くの情報をここで見つけました https://dev.to/dailydevtips1/testing-library-query-selectors-45a2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol