Jasminejs-exception-check
提供:Dev Guides
JasmineJS-例外チェック
さまざまな計算マッチャーとは別に、Jasmineはプログラムの例外をチェックするための便利なマッチャーをいくつか提供します。 次のコードセットを使用してJavaScriptを変更します。
var throwMeAnError = function() {
throw new Error();
};
describe("Different Methods of Expect Block", function() {
var exp = 25;
it ("Hey this will throw an Error ", function() {
expect(throwMeAnError).toThrow();
});
});
上記の例では、意図的にそのメソッドから例外をスローする1つのメソッドを作成し、expectブロックでエラーをキャッチすると予想しています。 すべてがうまくいけば、このコードは次の出力を生成します。
ここで、このテストケースが失敗するために、関数 throwMeAnError でそのthrowステートメントを省略する必要があります。 以下は、コードが要件を満たしていないため、出力として赤いスクリーンショットを生成するコードです。
var throwMeAnError = function() {
//throw new Error();
};
describe("Different Methods of Expect Block",function() {
var exp = 25;
it("Hey this will throw an Error ", function() {
expect(throwMeAnError).toThrow();
});
});
ご覧のように、メソッドが例外をスローした場所からその行をコメントしました。 以下は、SpecRunnerlが正常に実行された場合の上記のコードの出力です。
Jasmine.Any()
*Any* は、出力が不明な場合に使用される特別なマッチャーです。 次の例では、これがどのように機能するかを学習します。 *customerMatcher.js* を次のコードで変更します。
var addAny = function() {
var sum = this.currentVal;
for (var i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
this.currentVal = sum;
return this.currentVal;
}
describe("Different Methods of Expect Block",function () {
it("Example of any()", function() {
expect(addAny(9,9)).toEqual(jasmine.any(Number));
});
});
ここで、引数として提供された数値の合計を提供する1つの関数を宣言しました。 expectブロックでは、結果は何でもかまいませんが、Numberである必要があります。
合計収量18の後の9と9の両方が数値であるため、このテストに合格し、次の緑色のスクリーンショットが出力として生成されます。
次に、次のコードに従ってコードを変更します。ここでは、関数* AddAny()*の出力として文字列型変数を想定しています。
var addAny = function() {
var sum = this.currentVal;
for(var i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
this.currentVal = sum;
return this.currentVal;
}
describe("Different Methodsof Expect Block",function () {
it("Example of any()", function () {
expect(addAny(9,9)).toEqual(jasmine.any(String));
});
});
上記のコードの出力は次のとおりです。