2013-01-12 2 views
8

Node.js इकाई परीक्षण मॉड्यूल बुनियादी अभिकथन assert.fail है? मैं इकाई परीक्षण करने के लिए वास्तव में नया हूँ ...Assert.fail (node.js): ऑपरेटर पैरामीटर का क्या अर्थ है?</p> <pre><code>assert.fail(actual, expected, message, operator) </code></pre> <p><code>operator</code> क्या मतलब है:

उत्तर

9

क्या प्रलेखन कहते हैं: operator का मूल्य actual और expected के मूल्यों को अलग करने के लिए जब एक त्रुटि संदेश प्रदान करने के लिए इस्तेमाल किया जा रहा है। यह Node.js 'documentation for the assert module में वर्णित है।

लेकिन, यदि आप इस इंटरैक्टिव खोल में कोशिश आप देखते हैं कि पैरामीटर ध्यान नहीं दिया जा रहा है:

> assert.fail(23, 42, 'Malfunction in test.', '###') 
AssertionError: Malfunction in test. 
    at repl:1:9 
    at REPLServer.self.eval (repl.js:111:21) 
    at Interface.<anonymous> (repl.js:250:12) 
    at Interface.EventEmitter.emit (events.js:88:17) 
    at Interface._onLine (readline.js:199:10) 
    at Interface._line (readline.js:517:8) 
    at Interface._ttyWrite (readline.js:735:14) 
    at ReadStream.onkeypress (readline.js:98:10) 
    at ReadStream.EventEmitter.emit (events.js:115:20) 
    at emitKey (readline.js:1057:12) 

यह सब समझ में आता है जब आप implementation of the assert module, lines 101-109 पर एक नज़र डालें:

function fail(actual, expected, message, operator, stackStartFunction) { 
    throw new assert.AssertionError({ 
    message: message, 
    actual: actual, 
    expected: expected, 
    operator: operator, 
    stackStartFunction: stackStartFunction 
    }); 
} 

तो, बेहतर वर्णन यह हो सकता है कि संदेश में स्वचालित रूप से का उपयोग नहीं किया गया है, लेकिन का उपयोग किया जा सकता है यदि आप अपवाद पकड़ते हैं और एक ऐप्रॉप बनाते हैं खुद को संदेश भेजो। नतीजतन, यदि आप अपना स्वयं का परीक्षण ढांचा तैयार करने जा रहे हैं तो यह पैरामीटर उपयोगी हो सकता है।

यदि आप message पैरामीटर को छोड़ देते हैं तो आप उस पैरामीटर का उपयोग करने के लिए Node.js को मजबूर कर सकते हैं, उदा। undefined को स्पष्ट रूप से पास करके:

> assert.fail(23, 42, undefined, '###') 
AssertionError: 23 ### 42 
[...] 
+0

ग्रेट, धन्यवाद! असल में दस्तावेज़ों में एक पैरामीटर का उल्लेख नहीं किया गया है। मुझे इन कार्यों को स्रोत कोड में खुद को ढूंढना सीखना है - ऐसा लगता है कि दस्तावेज कोड की तुलना में अधिक भ्रमित हो सकता है ... – esp

+1

असल में, आपको Node.js रिपॉजिटरी के अंदर 'lib' फ़ोल्डर में सभी लाइब्रेरी मिलती हैं। –

संबंधित मुद्दे