の実際の文字列がの正規表現と一致するかどうかを確認するために、QUnitのカスタムassert
関数を書きたいと思います。QUnit.pushを使わずにQUnitの新しいアサーション関数を書くには?
QUnit.extend(QUnit.assert, {
matches: function (actual, regex, message) {
var success = !!regex && !!actual && (new RegExp(regex)).test(actual);
var expected = "String matching /" + regex.toString() + "/";
QUnit.push(success, actual, expected, message);
}
});
QUnit.test("New assertion smoke test", function (assert) {
// force a failure to see the new assert work properly:
assert.matches("flower", "gibberish");
});
この出力:
メッセージ:予想: "文字列マッチング/ちんぷんかんぷん/"、実際: "花"
this questionの助けを借りて、私は期待どおりに動作最初の基本的なバージョンを書きました
素晴らしい!
しかし、これを書いている間に私はthe QUnit.extend
docsとthe QUnit.push docsの両方をチェックしました。しかし、後者のことを言及し:この方法はある
を廃止され、アサーションコンテキストにおけるその直接的な参照を介してそれを使用することをお勧めします。
しかし、私はQUnit.extend
コンテキスト内で、このアドバイスを適用することができますどのように見ることができません。
非推奨のQUnit.push
機能を使用しないカスタムアサーションを正しく作成するにはどうすればよいですか。コメントに@sirroccoによって示唆されるように
は、このされていません。 https://api.qunitjs.com/push/あなたが探しているものは?最下位に例があります – sirrocco
@sirroccoはい、実際はそれに似ています。確かにそれを与える必要があります。そうであれば、私はおそらくQUnitのドキュメントへの修正を提案するべきであり、廃止予定の 'プッシュ'記事(自分の質問にリンクしている記事)が提案した新しい記事にリンクすればいいだろう。 – Jeroen
@sirrocco私はあなたの提案を試しに周りにあった、それは動作します:ありがとう!あなたがしたい場合は、私の答えを複製することができます、私は自分自身を削除し、あなたに十分に値する賞金を授与されます。 – Jeroen