Express.js uygulamamda küçük bir modülü test etmek için Mocha kullanıyorum. Bu modülde, işlevlerimden biri bir dizi döndürüyor. Dizinin belirli bir girdi için doğru olup olmadığını test etmek istiyorum. Ben böyle yapıyorum:
suite('getWords', function(){
test("getWords should return list of numbers", function() {
var result = ['555', '867', '5309'];
assert.equal(result, getWords('555-867-5309'));
});
});
Bu çalıştığında, aşağıdaki onaylama hatasını alıyorum:
AssertionError: ["555","867","5309"] == ["555","867","5309"]
Ancak, testimi bir olarak değiştirdiğimde assert.deepEqual
, test iyi geçiyor. Bir ==
vs durumu olup olmadığını merak ediyordum ===
ama girersem
[1,2,3] === [1,2,3]
node.js komut satırına girdim, hala yanlış alıyorum.
Diziler neden diğer değerlerin yaptığı gibi karşılaştırmaz (ör. 1 == 1
)? ve assert.equal ile assert.deepEqual arasındaki fark nedir?
deepEqual()
; gerçekten karşılaşana kadar karşılaştırmada düşündüğünüz bir şey değil.