[解決済み] Jest expectにカスタムメッセージを追加するには?
2023-02-14 22:10:40
質問
テストケースに続く画像です。
it('valid emails checks', () => {
['[email protected]', '[email protected]'/*, ...*/].map(mail => {
expect(isValid(mail)).toBe(true);
});
});
各メールに以下のような自動生成のメッセージを付けたい。
Email '[email protected]' should be valid
のように、メールごとに自動生成されるメッセージを追加して、失敗したテストケースを簡単に見つけられるようにしたいです。
のようなものです。
// .map(email =>
expect(isValid(email), `Email ${email} should be valid`).toBe(true);
で可能でしょうか? ジェスト ?
Chaiでは、第2パラメータに
expect(value, 'custom fail message').to.be...
のように、2番目のパラメータで行うことができましたが、Jasmineでは
.because
節で行われているように見えます。しかし、Jestで解決策を見つけることができません。
どのように解決するのですか?
そのようなメッセージを提供することは不可能だと思います。しかし、自分で定義することができます。 マッチャー .
例えば
toBeValid(validator)
というマッチャーを作ることができます。
expect.extend({
toBeValid(received, validator) {
if (validator(received)) {
return {
message: () => `Email ${received} should NOT be valid`,
pass: true
};
} else {
return {
message: () => `Email ${received} should be valid`,
pass: false
};
}
}
});
そして、このように使うのです。
expect(mail).toBeValid(isValid);
注
toBeValid
は両方の場合(成功と失敗)にメッセージを返します。なぜなら、これによって
.not
. このテストは、バリデーションに合格させたいかどうかに応じて、対応するメッセージとともに失敗します。
expect(mail).toBeValid(isValid);
// pass === true: Test passes
// pass === false: Failure: Email ... should be valid
expect(mail).not.toBeValid(isValid);
// pass === true: Failure: Email ... should NOT be valid
// pass === false: Test passes
関連
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] GUID / UUIDの作成方法
-
[解決済み] JavaScriptでタイムスタンプを取得する方法は?
-
[解決済み】別のウェブページにリダイレクトするにはどうすればいいですか?
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み] Angularjs - 現在の日付を表示する
-
[解決済み] react-routerのハッシュフラグメントからクエリパラメータを取得する
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 上級者向けJavaScript。この関数はなぜ括弧でくくられるのですか?重複
-
[解決済み] チェックボックスが選択されているかどうかを確認するjQuery
-
[解決済み] javascript の関数から `undefined` と `null` のどちらを返すのが良いのでしょうか?
-
[解決済み] 文字列が空白であるかどうかをチェックする
-
[解決済み] Reactメモを使うべきではない場合とは?
-
[解決済み] jQueryで入力ファイルが空かどうかをチェックする方法
-
[解決済み] イテレータでmap()を使用する
-
[解決済み] Chromeのwebkitインスペクタで「Unsafe JavaScript attempt to access frame with URL...」というエラーが継続的に発生する。
-
[解決済み] JavaScriptの文字列プリミティブとStringオブジェクトの違いは何ですか?
-
[解決済み] JavaScriptデータフォーマット/プリティプリンタ