JasmineJS-同等性チェック

Jasmineは、JavaScript関数とファイルの同等性をチェックするのに役立つ多くのメソッドを提供します。以下は、同等条件をチェックするためのいくつかの例です。

ToEqual()

ToEqual()ジャスミンの組み込みライブラリに存在する最も単純なマッチャーです。このメソッドの引数として指定された操作の結果がその結果と一致するかどうかだけが一致します。

次の例は、このマッチャーがどのように機能するかを理解するのに役立ちます。テストするファイルが2つあります。“expectexam.js” そして私たちがテストする必要があるもう一つは “expectSpec.js”

Expectexam.js

window.expectexam = {    
   currentVal: 0,   
};

ExpectSpec.js

describe("Different Methods of Expect Block",function () { 
   
   it("The Example of toEqual() method",function () {   
      //this will check whether the value of the variable  
      // currentVal is equal to 0 or not.  
      expect(expectexam.currentVal).toEqual(0);  
   });
});

正常に実行されると、これらのコードは次の出力を生成します。これらのファイルをのヘッダーセクションに追加する必要があることを忘れないでくださいspecRunner.html 前の例で指示されたようにファイル。

not.toEqual()

not.toEqual() toEqual()とは正反対に機能します。 not.toEqual() 値がどの関数の出力とも一致しないかどうかを確認する必要がある場合に使用されます。

上記の例を変更して、これがどのように機能するかを示します。

ExpectSpec.js

describe("Different Methods of Expect Block",function () { 

   it("The Example of toEqual() method",function () {
      expect(expectexam.currentVal).toEqual(0);  
   });   
   
   it("The Example of not.toEqual() method",function () {  
      //negation  testing expect(expectexam.currentVal).not.toEqual(5); 
   }); 
});

Expectexam.js

window.expectexam = { 
   currentVal: 0,  
};

2番目のexpectブロックでは、の値が currentVal currentValの値がゼロであるため、は5に等しくなります。したがって、テストに合格し、緑色の出力が得られます。

することが()

toBe()マッチャーはtoEqual()と同じように機能しますが、技術的には異なります。toBe()マッチャーはオブジェクトのタイプと一致しますが、toEqual() 結果の同等性と一致します。

次の例は、toBe()マッチャーの動作原理を理解するのに役立ちます。このマッチャーはJavaScriptの「===」演算子とまったく同じですが、toEqual()はJavaScriptの「==」演算子に似ています。

ExpectSpec.js

describe("Different Methods of Expect Block",function () {  

   it("The Example of toBe() method",function () { 
      expect(expectexam.name).toBe(expectexam.name1);     
   });
});

Expectexam.js

window.expectexam = {
   currentVal: 0, 
   name:"tutorialspoint", 
   name1:tutorialspoint  
};

少し変更します expectexamJavaScriptファイル。2つの新しい変数を追加しました。name そして name1。追加されたこれら2つの変数の違いを見つけてください。1つは文字列型で、もう1つは文字列型ではありません。

次のスクリーンショットは、赤十字がこれら2つの値が等しくないことを示しているのに対し、等しいと予想されるテスト結果です。したがって、テストは失敗します。

両方の変数を回してみましょう。 name そして name1 文字列型変数として同じように実行します SpecRunner.html再び。次に、出力を確認します。toBe()が変数の同等性と一致するだけでなく、変数のデータ型またはオブジェクト型とも一致することを証明します。

not.toBe()

前に見たように、toBe()メソッドの否定に他なりません。期待される結果が関数またはJavaScriptファイルの実際の出力と一致する場合は失敗します。

以下は、not.toBe()マッチャーがどのように機能するかを理解するのに役立つ簡単な例です。

describe("Different Methods of Expect Block",function () { 
   it("The Example of not.toBe() method",function () { 
      expect(true).not.toBe(false);    
   });
});

ここで、ジャスミンは真と偽を一致させようとします。trueはfalseと同じにすることはできないため、このテストケースは有効でパススルーされます。