ジャスミンをspyig開始することができないので、それはエラーをスローします独自の「マッチャー」を書くことができます。ドキュメンテーションはそれを説明します。 http://jasmine.github.io/2.0/custom_matcher.html
あなたは個人的に私は、値の型をチェックし、もう少し一般的な何かを書くだろう
expect(obj).toHaveMethod("methodName");
と呼ばれる非常に特定のマッチャーを書くことができます。そのようにして、メソッドが定義されているかオブジェクト/インスタンスであるかをチェックするのではなく、値を格納できるものをチェックするために使用できます。また、関数型以外の型をチェックすることもできます。
expect(obj.methodName).toBeA(Function);
これを動作させるには、toBeA「マッチャー」を追加する必要があります。
beforeEach(function(){
jasmine.addMatchers({
toBeA: toBeA
});
});
function toBeA() {
return {
compare: function (value, type) {
var result = {pass: val != null && val.constructor === type || val instanceof type};
if (result.pass) {
result.message = 'Expected ' + value + ' to be a ' + type.name
} else {
result.message = 'Expected ' + value + ' to not be a ' + type.name
}
return result;
}
};
}
この問題は、期待通りに失敗した場合、メッセージが「期待どおりに機能していないと期待されています」というメッセージが表示されます。プロパティ 'open''を持つ 'Expected object' @xhr 'のようなものが良いでしょう。 – Jorn