Saya menggunakan Mocha untuk menguji modul kecil di aplikasi Express.js saya. Dalam modul ini, salah satu fungsi saya mengembalikan array. Saya ingin menguji apakah array sudah benar untuk input yang diberikan. Saya melakukannya seperti ini:
suite('getWords', function(){
test("getWords should return list of numbers", function() {
var result = ['555', '867', '5309'];
assert.equal(result, getWords('555-867-5309'));
});
});
Saat ini berjalan, saya mendapatkan kesalahan pernyataan berikut:
AssertionError: ["555","867","5309"] == ["555","867","5309"]
Namun, ketika saya mengubah tes saya menjadi tes assert.deepEqual
, tes itu berjalan dengan baik. Saya bertanya-tanya apakah itu kasus ==
vs ===
, tetapi jika saya masuk
[1,2,3] === [1,2,3]
ke baris perintah node.js, saya masih mendapatkan false.
Mengapa array tidak dapat dibandingkan dengan nilai lain (misalnya 1 == 1
)? dan apa perbedaan antara assert.equal dan assert.deepEqual?
sumber
deepEqual()
; bukan sesuatu yang Anda pikirkan dalam perbandingan sampai Anda benar-benar menemukannya.