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));
   });
});

上記のコードの出力は次のとおりです。

すべてのエラー