私が使用したすべてのテストフレームワークには、独自のカスタムエラーメッセージを指定するためのオプションのパラメーターがあります。
これは非常に便利ですが、ジャスミンを使って箱から出してこれを行う方法を見つけることができません。
私は他の3人の開発者にこの正確な機能について質問してもらいましたが、ジャスミンに関しては何を言うべきかわかりません。
各アサーションに独自のカスタムエラーメッセージを指定することは可能ですか?
私が使用したすべてのテストフレームワークには、独自のカスタムエラーメッセージを指定するためのオプションのパラメーターがあります。
これは非常に便利ですが、ジャスミンを使って箱から出してこれを行う方法を見つけることができません。
私は他の3人の開発者にこの正確な機能について質問してもらいましたが、ジャスミンに関しては何を言うべきかわかりません。
各アサーションに独自のカスタムエラーメッセージを指定することは可能ですか?
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);
};
ご覧のとおり、メッセージはマッチャーにハードコードされており、マッチャーを呼び出すと設定されます。独自のメッセージを持つ唯一の方法は、ここで説明されているようにマッチャーを作成することです
この問題.because()
は、メカニズムを使用してカスタム エラー メッセージを実装することへの関心を追跡しています。
それまでの間、avrelianはメカニズムを使用してカスタム エラー メッセージを実装する優れたライブラリを作成しましたsince()
– jasmine-custom-message
.
はい、できます。
以下のように、jasmine のエラー メッセージをオーバーライドして、グローバル スコープでカスタム マッチャーを定義できます。
beforeEach(function () {
jasmine.addMatchers({
toReport: function () {
return {
compare: function (actual, expected, msg) {
var result = {pass: actual == expected};
result.message = msg;
return result;
}
}
}
});
});