[解決済み] Jestを使用してオブジェクトの一部をテストするにはどうすればよいですか?
2023-07-09 14:21:26
質問
私は時間が正しくパースされることをテストしたいと思います。私はオブジェクト全体ではなく、いくつかのプロパティをチェックすることに興味があるだけです。この場合、時間と分です。
私は
expect(object).toContain(value)
を使ってみましたが、以下のスニペットにあるように、オブジェクトは私が興味を持っているプロパティを含んでおり、それらは正しい値を持っているにもかかわらず、失敗しています。
● Calendar > CalendarViewConfig › it should parse time
expect(object).toContain(value)
Expected object:
{"display": "12:54", "full": 774, "hour": 12, "hours": 12, "minutes": 54, "string": "12:54"}
To contain value:
{"hours": 12, "minutes": 54}
67 | it('it should parse time', () => {
68 | ...
> 69 | expect(parseTime('12:54')).toContain({ hours: 12, minutes: 54})
70 | })
at Object.<anonymous> (src/Components/Views/Calendar/CalendarViewConfig.test.js:69:32)
どのように解決するのですか?
期待されるオブジェクトが受信したオブジェクトのサブセットであるかどうかを確認するために
toMatchObject(object)
メソッドを使用する必要があります。
expect(parseTime('12:54')).toMatchObject({ hours: 12, minutes: 54})
または
expect.objectContaining(object)
のマッチャーを使います。
expect(parseTime('12:54')).toEqual(expect.objectContaining({ hours: 12, minutes: 54}))
これらは微妙に異なる方法で動作します。 .toMatchObject' と 'objectContaining' の違いは何ですか? をご覧ください。
toContain()
は、ある項目が配列の中にあるかどうかをチェックするためのものです。
関連
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScriptのオブジェクトが空であることをテストするにはどうすればよいですか?
-
[解決済み] JavaScriptで空文字列/未定義文字列/null文字列をチェックするにはどうすればよいですか?
-
[解決済み] JavaScriptのオブジェクトをループスルーまたは列挙するにはどうすればよいですか?
-
[解決済み] オブジェクトが配列であるかどうかを確認するにはどうすればよいですか?[重複]。
-
[解決済み] JavaScriptで要素のクラスを変更するにはどうすればよいですか?
-
[解決済み] JavaScriptで文字列をbooleanに変換するにはどうしたらいいですか?
-
[解決済み] プライベートメソッド、フィールド、インナークラスを持つクラスをテストするにはどうすればよいですか?
-
[解決済み] JavaScriptのオブジェクトを表示するにはどうすればよいですか?
-
[解決済み] 無効になっている入力フィールドの値を送信する
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JSのDateからDay名
-
[解決済み] AngularJSのエラーです。Cross Origin リクエストはプロトコルスキーム http, data, chrome-extension, https に対してのみサポートされています。
-
[解決済み] ジェスト あるクラスの特定のメソッドをモックする方法
-
[解決済み] Google maps API V3 - 同一地点に複数のマーカーを設置する。
-
[解決済み] オブジェクトの配列からReactコンポーネントをレンダリングする
-
[解決済み] Javascript / jQueryでAndroid端末を検出する。
-
[解決済み] jQueryで入力ファイルが空かどうかをチェックする方法
-
[解決済み] Chromeのwebkitインスペクタで「Unsafe JavaScript attempt to access frame with URL...」というエラーが継続的に発生する。
-
[解決済み] JavaScriptデータフォーマット/プリティプリンタ
-
[解決済み] .toMatchObject' と 'objectContaining' の違いは何ですか?