[解決済み】jestとreact-testing-libraryを使って、要素が存在しないことをテストするにはどうすればよいですか?
2022-04-12 10:34:08
質問
私はJestとreact-testing-libraryを使ってユニットテストを書いているコンポーネントライブラリを持っています。特定のpropsやイベントに基づいて、特定の要素がレンダリングされていないことを検証したいのです。
getByText
,
getByTestId
などが投げられ、エラーが発生します。
react-testing-library
が見つかる前にテストが失敗した場合、その要素は
expect
関数が起動します。
react-testing-libraryを使って、jestに存在しないものをどのようにテストするのでしょうか?
どのように解決するのですか?
から DOM Testing-library Docs - 出現と消滅
<ブロッククオート要素が存在しないことを主張する
標準的な
getBy
メソッドは、要素が見つからないとエラーを投げます。
というアサーションを行いたい場合、その要素が
ではない
DOM に存在する。
を使用することができます。
queryBy
のAPIで代用できます。
const submitButton = screen.queryByText('submit')
expect(submitButton).toBeNull() // it doesn't exist
は
queryAll
APIバージョンは、一致するノードの配列を返します。この配列の長さは
配列は、要素が追加されたり削除されたりした後のアサーションに便利です。
DOM
const submitButtons = screen.queryAllByText('submit')
expect(submitButtons).toHaveLength(2) // expect 2 elements
not.toBeInTheDocument
は
jest-dom
ユーティリティ・ライブラリは
.toBeInTheDocument()
マッチャーを使用することで、ある要素が
であるかどうか。これは、次のように主張するよりも意味があります。
クエリ結果が
null
.
import '@testing-library/jest-dom/extend-expect'
// use `queryBy` to avoid throwing an error with `getBy`
const submitButton = screen.queryByText('submit')
expect(submitButton).not.toBeInTheDocument()
関連
-
[解決済み] エラー: 未定義のプロパティ 'map' を読み取ることができません。
-
[解決済み] jest: テストスイートの実行に失敗しました。予期しないトークンのインポート
-
[解決済み] sh: react-scripts: npm start の実行後にコマンドが見つからない。
-
[解決済み] Jestを使用して単一のテストを実行するにはどうすればよいですか?
-
[解決済み] Uncaught (in promise) Error: リクエストに失敗、ステータスコード404
-
[解決済み] React JSでは、状態を直接変異させない、setState() react/no-direct-mutation-stateを使用する。
-
[解決済み] Jestを使用して1つのファイルをテストするにはどうすればよいですか?
-
[解決済み] Error: yarn start - エラー コマンド "start" が見つかりません。
-
[解決済み] React Hooksの「exhaustive-deps」lintルールを理解する
-
[解決済み] reactのuseStateフックでコールバックを使う方法 [重複]。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Reactコンポーネント内でswitchステートメントを使用するには?
-
[解決済み] React.createElement: type is invalid -- expected a string.
-
[解決済み] reactでonloadを使うには?
-
[解決済み] ReactJsのCreateClassは関数ではない
-
[解決済み] カスタマイズ素材UI チェックした場合としない場合の切り替え
-
[解決済み] validateDOMNesting警告React
-
[解決済み] プロップ `history` は `Router` で必須とマークされているが、その値は `undefined` である。
-
[解決済み] React Router - バージョン更新後のwithRouterでTypescriptエラーが発生する。
-
[解決済み] componentWillReceivePropsライフサイクルメソッドはいつ使用するのですか?
-
[解決済み] React」は定義される前に使用されていた