मैं अपने Express.js एप्लिकेशन में एक छोटे मॉड्यूल का परीक्षण करने के लिए मोचा का उपयोग कर रहा हूं। इस मॉड्यूल में, मेरा एक कार्य एक सरणी देता है। मैं परीक्षण करना चाहता हूं कि दिए गए इनपुट के लिए सरणी सही है या नहीं। मैं इस तरह से कर रहा हूँ:
suite('getWords', function(){
test("getWords should return list of numbers", function() {
var result = ['555', '867', '5309'];
assert.equal(result, getWords('555-867-5309'));
});
});
जब यह चलता है, तो मुझे निम्नलिखित दावे की त्रुटि मिलती है:
AssertionError: ["555","867","5309"] == ["555","867","5309"]
हालाँकि, जब मैं अपना परीक्षण ए में बदलता हूं assert.deepEqual
, तो परीक्षण ठीक गुजरता है। मैं सोच रहा था कि क्या यह ==
बनाम का मामला है ===
, लेकिन अगर मैं दर्ज करता हूं
[1,2,3] === [1,2,3]
नोड कमांड लाइन में, मैं अभी भी गलत हूं।
सरणियाँ अन्य मानों (जैसे 1 == 1
) के तरीके की तुलना क्यों नहीं करती हैं ? और assert.equal और assert.deepEqual के बीच क्या अंतर है?
deepEqual()
; तुलना में वास्तव में कुछ ऐसा नहीं है जिसके बारे में आप तब तक सोचते हैं जब तक आप वास्तव में इसके पार नहीं आते हैं।