31

私が使用したすべてのテストフレームワークには、独自のカスタムエラーメッセージを指定するためのオプションのパラメーターがあります。

これは非常に便利ですが、ジャスミンを使って箱から出してこれを行う方法を見つけることができません。

私は他の3人の開発者にこの正確な機能について質問してもらいましたが、ジャスミンに関しては何を言うべきかわかりません。

各アサーションに独自のカスタムエラーメッセージを指定することは可能ですか?

4

5 に答える 5

9

jasmine のソース コードを見ると、マッチャーの外部からメッセージを設定する方法がないことがわかります。たとえばtoBeNaNマッチャー。

/**
 * Matcher that compares the actual to NaN.
 */
jasmine.Matchers.prototype.toBeNaN = function() {
  this.message = function() {
      return [ "Expected " + jasmine.pp(this.actual) + " to be NaN." ];
  };

  return (this.actual !== this.actual);
};

ご覧のとおり、メッセージはマッチャーにハードコードされており、マッチャーを呼び出すと設定されます。独自のメッセージを持つ唯一の方法は、ここで説明されているようにマッチャーを作成することです

于 2013-03-05T08:14:59.573 に答える
5

この問題.because()は、メカニズムを使用してカスタム エラー メッセージを実装することへの関心を追跡しています。

それまでの間、avrelianはメカニズムを使用してカスタム エラー メッセージを実装する優れたライブラリを作成しましたsince()jasmine-custom-message.

于 2015-08-04T16:32:11.500 に答える
3

はい、できます。

以下のように、jasmine のエラー メッセージをオーバーライドして、グローバル スコープでカスタム マッチャーを定義できます。

beforeEach(function () {
    jasmine.addMatchers({
        toReport: function () {
            return {
                compare: function (actual, expected, msg) {
                    var result = {pass: actual == expected};
                    result.message = msg;
                    return result;
                }
            }
        }
    });
});
于 2016-10-22T16:40:16.933 に答える