[解決済み] ReactコンポーネントのJest SnapshotテストにおけるSnapshotテストの仕組みとtoMatchSnapshot()関数は何をするのか?
2022-02-24 08:34:10
質問
私はJestのテストに慣れておらず、ReactコンポーネントのテストケースがJestでどのように書かれているのか、いくつかの例を見ていました。私はスナップショットテストに出会い、それが実際に何であるかを理解しようとしていました。そして、私がウェブから出会ったものは "スナップショットテストは、出力のJson表現を生成することによって、与えられたテストの結果をアサートする方法です."。 ということで、今現在Snapshot testingに2つの疑問があります。
1) 例えば、簡単な段落を持つシンプルなコンポーネントがあるとします。そこで、Snapshotテストを使ってテストしようとすると、それをどのようにコンポーネントのJSON表現に変換するのでしょうか。また、それはどのような場合に有効なのでしょうか?
2) というような例に出会いました。
Wrapper = shallow(<First_Component />);
it("displays the result", () => {
const test = Wrapper.find(Second_Component).length;
expect(test).toMatchSnapshot();
});
そこで、上記のコードに対する私の疑問は、どのようにして
toMatchSnapshot()
という関数がここで動作するのでしょうか?
解決方法は?
Snapshots
は、コンポーネントが正しくレンダリングされるかどうかをテストすることができます。
expect(Wrapper).toMatchSnapshot()
もし、あるコンポーネントの出現回数をテストしたい場合は、2つ目のコンポーネントをインポートしてテストを作成してください。
it("displays the result", () => {
const test = Wrapper.find(Second_Component).length;
expect(test).toEqual(1); // or the number of occurrence you're expecting
});
もし、コンポーネントのJSON表現に興味があるのであれば enzyme-to-jsonパッケージ この目的のために
関連
-
[解決済み】React - 式は1つの親要素を持つ必要がありますか?
-
[解決済み] エラー: 未定義のプロパティ 'map' を読み取ることができません。
-
[解決済み】React 17で動作するEnzymeアダプターはどれですか?
-
[解決済み】ReactJS: マテリアルuiのブレークポイントについて
-
[解決済み] React テキストを挟んだ横長の仕切りを作る
-
[解決済み] ReactJS - SCRIPT1010: 期待される識別子 - IE11 で本番ビルドが実行されない
-
[解決済み] React Router - バージョン更新後のwithRouterでTypescriptエラーが発生する。
-
[解決済み] React Hooksの「exhaustive-deps」lintルールを理解する
-
[解決済み] React NativeとReactの違いは何ですか?
-
[解決済み] Reactコンポーネントに条件付きで属性を追加するにはどうすればよいですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] エラー: 未定義のプロパティ 'map' を読み取ることができません。
-
[解決済み] FontAwesomeの無料パッケージに含まれているアイコンのオブジェクト名はどこにあるのですか?
-
[解決済み] ReactJS giving error Uncaught TypeError: Super expression は null か関数でなければならず、undefined ではありません。
-
[解決済み] MUI Boxは何のためのコンポーネントですか?
-
[解決済み] TypeError: reactjs の未定義のプロパティ 'status' を読み取ることができません。
-
[解決済み] Angular 2の*ngForのReactでの同等品
-
[解決済み] 'Proptypes'が定義されていない
-
[解決済み] ReactjsのEsLintの "react / jsx-props-no-spreading "エラーを無効化する。
-
[解決済み] 拡張子.tsと.tsxの違いは何ですか?どちらもreactのタイプスクリプトファイルの拡張子として使用されます。では、どこで使うべきなのでしょうか?
-
[解決済み] Reactでグローバル変数を宣言する方法とは?