Jasminejs-equality-check
JasmineJS-平等チェック
Jasmineは、JavaScript関数とJavaScriptファイルの同等性をチェックするのに役立つ多くのメソッドを提供します。 以下は、等価条件を確認するためのいくつかの例です。
ToEqual()
- ToEqual()*は、ジャスミンの組み込みライブラリに存在する最も単純なマッチャーです。 このメソッドの引数として指定された操作の結果が、その結果と一致するかどうかだけに一致します。
次の例は、このマッチャーがどのように機能するかを理解するのに役立ちます。 “ expectexam.js” *という名前のテスト対象ファイルが2つあり、テストする必要があるもう1つのファイルは“ 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);
});
});
正常に実行されると、これらのコードは次の出力を生成します。 前の例で説明したように、これらのファイルを specRunnerl ファイルのヘッダーセクションに追加する必要があることに注意してください。
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:"finddevguides",
name1:finddevguides
};
*expectexam* JavaScriptファイルをわずかに変更します。 2つの新しい変数、 *name* と *name1* を追加しました。 これら2つの追加された変数の違いを見つけてください-1つは文字列型で、もう1つは文字列型ではありません。
次のスクリーンショットは、赤い十字がこれらの2つの値が等しくないことを示していますが、等しいと予想されるテスト結果です。 したがって、テストは失敗します。
*name* と *name1* の両方の変数を文字列型変数にして、同じ *SpecRunnerl* をもう一度実行してみましょう。 次に、出力を確認します。 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を一致させようとします。 trueとfalseを同じにすることはできないため、このテストケースは有効であり、パススルーされます。