JasmineJS - Pemeriksaan Kesetaraan
Jasmine menyediakan banyak metode yang membantu kami memeriksa kesetaraan fungsi dan file JavaScript apa pun. Berikut adalah beberapa contoh untuk memeriksa kondisi kesetaraan.
ToEqual ()
ToEqual()adalah matcher paling sederhana yang ada di perpustakaan bawaan Jasmine. Ini hanya cocok apakah hasil operasi yang diberikan sebagai argumen untuk metode ini cocok dengan hasilnya atau tidak.
Contoh berikut akan membantu Anda memahami cara kerja matcher ini. Kami memiliki dua file untuk diuji bernama“expectexam.js” dan satu lagi yang perlu kita uji adalah “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);
});
});
Jika eksekusi berhasil, potongan kode ini akan menghasilkan keluaran sebagai berikut. Ingat Anda perlu menambahkan file-file ini ke dalam bagian headerspecRunner.html file seperti yang diarahkan pada contoh sebelumnya.
not.toEqual ()
not.toEqual() bekerja persis berlawanan dengan toEqual (). not.toEqual() digunakan saat kita perlu memeriksa apakah nilainya tidak cocok dengan output dari fungsi apa pun.
Kami akan memodifikasi contoh di atas untuk menunjukkan cara kerjanya.
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,
};
Di blok ekspektasi kedua, kami memeriksa apakah nilai dari currentVal sama dengan 5 karena nilai currentVal adalah nol maka pengujian kami lolos dan memberi kami output hijau.
Menjadi()
toBe()matcher bekerja dengan cara yang mirip seperti toEqual (), namun secara teknis mereka berbeda satu sama lain. toBe () cocok dengan jenis objek sedangkantoEqual() cocok dengan hasil yang setara.
Contoh berikut akan membantu Anda memahami prinsip kerja matcher toBe (). Pencocokan ini sama persis dengan operator “===” JavaScript sedangkan toEqual () mirip dengan operator “==” 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
};
Kami akan sedikit memodifikasi file expectexamFile JavaScript. Kami menambahkan dua variabel baru,name dan name1. Temukan perbedaan antara dua variabel tambahan ini - yang satu berjenis string dan yang lainnya bukan jenis string.
Screenshot berikut adalah hasil pengujian kami di mana tanda silang merah menggambarkan bahwa kedua nilai ini tidak sama, padahal diharapkan sama. Karenanya pengujian kami gagal.
Mari kita putar kedua variabel tersebut, name dan name1 sebagai variabel tipe String dan menjalankannya sama SpecRunner.htmllagi. Sekarang periksa hasilnya. Ini akan membuktikan bahwa toBe () tidak hanya cocok dengan ekuivalensi variabel, tetapi juga cocok dengan tipe data atau tipe objek variabel.
tidak menjadi()
Seperti yang terlihat sebelumnya, not hanyalah negasi dari metode toBe (). Gagal ketika hasil yang diharapkan cocok dengan keluaran sebenarnya dari fungsi atau file JavaScript.
Berikut adalah contoh sederhana yang akan membantu Anda memahami cara kerja not.toBe () matcher.
describe("Different Methods of Expect Block",function () {
it("The Example of not.toBe() method",function () {
expect(true).not.toBe(false);
});
});
Di sini Jasmine akan mencoba mencocokkan benar dengan salah. Karena benar tidak bisa sama dengan salah, kasus uji ini akan valid dan lolos.