JasmineのtoHaveBeenCalledWith matcherを正規表現で使用することは可能でしょうか?
2023-10-20 07:44:14
質問
私は、Jasmineのドキュメントで toHaveBeenCalledWith matcherのドキュメントを確認し、引数が文字列である場合に、引数に正規表現を渡すことが可能かどうかを理解することができました。残念ながら、これはサポートされていない機能です。また という課題も github で公開されています。 でこの機能を要求しています。
コードベースを少し調べてみたところ、この機能を 既存のマッチャー . しかし、別の matcher として実装したほうが、抽象化を個別に把握できるため、より適切だと思います。
とりあえず、何か良い回避策はないでしょうか?
どのように解決するのですか?
いろいろと調べてみると
Jasmineのスパイ
オブジェクトには
calls
プロパティを持ち、そのプロパティは
mostRecent()
という関数があります。この関数はまた、子プロパティ
args
を持ち、これは呼び出し引数の配列を返します。
したがって、文字列引数が特定の正規表現にマッチするかどうかをチェックしたい場合、次のシーケンスを使用してコール引数の正規表現マッチを実行することができます。
var mySpy = jasmine.createSpy('foo');
mySpy("bar", "baz");
expect(mySpy.calls.mostRecent().args[0]).toMatch(/bar/);
expect(mySpy.calls.mostRecent().args[1]).toMatch(/baz/);
かなりわかりやすい。
関連
最新
-
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 実装 サイバーパンク風ボタン