JasmineJS-マッチャー

Jasmineはテストフレームワークであるため、JavaScriptファイルまたは関数の結果を期待される結果と比較することを常に目的としています。マッチャーは、Jasmineフレームワークでも同様に機能します。

Matchers実際の出力と期待される出力の間でブール比較を行うJavaScript関数です。マッチャーには2つのタイプがありますInbuilt matcher そして Custom matchers

作り付けのマッチャー

Jasmineフレームワークに組み込まれているマッチャーは inbuilt matcher。ユーザーはそれを簡単に使用できますimplicitly

次の例は、JasmineフレームワークでInbuiltMatcherがどのように機能するかを示しています。前の章ですでにいくつかのマッチャーを使用しました。

describe("Adding single number ", function () {  

   //example of toEqual() matcher    
   it("should add numbers",function() { 
      expect(nested.add(5)).toEqual(5); 
      expect(nested.add(5)).toEqual(10); 
   });   
   
   it("should add numbers",function() { 
      expect(nested.addAny(1,2,3)).toEqual(6); 
   });
}

例では、toEqual()は、の結果を比較する組み込みのマッチャーです。 add() そして addAny() に渡された引数を持つメソッド toEqual() マッチャー。

カスタムマッチャー

ジャスミンの組み込みシステムライブラリに存在しないマッチャーは、次のように呼ばれます。 custom matcher。カスタムマッチャーを定義する必要がありますexplicitly()。次の例では、カスタムマッチャーがどのように機能するかを確認します。

describe('This custom matcher example', function() {
   
   beforeEach(function() { 
      // We should add custom matched in beforeEach() function. 
      jasmine.addMatchers ({ 
         validateAge: function() { 
            Return {    
               compare: function(actual,expected) {
                  var result = {}; 
                  result.pass = (actual > = 13 && actual < = 19);
                  result.message = 'sorry u are not a teen ';
                  return result; 
               }   
            };   
         }    
      });    
   }); 
    
   it('Lets see whether u are teen or not', function() { 
      var myAge = 14; 
      expect(myAge).validateAge();         
   });   
    
   it('Lets see whether u are teen or not ', function() { 
      var yourAge = 18;
      expect(yourAge).validateAge();  
   });
});

上記の例では、 validateAge()ある範囲であなたの年齢を実際に検証しているマッチャーとして機能します。この例では、validateAge()はカスタムマッチャーとして機能します。このJSファイルをに追加しますSpecRunner.html同じように実行します。次の出力が生成されます。