2011-10-06 12 views
7

मैं एक नोडजेस अनुप्रयोग पर काम कर रहा हूं। मैं अलग-अलग मॉड्यूल में कुछ कोड तोड़ने में कामयाब रहा, कि मैं नोड्यूनिट का उपयोग कर परीक्षण कर रहा हूं, लेकिन मेरे कोड बेस का एक बड़ा हिस्सा अभी भी socket.io पर निर्भर करता है।परीक्षण socket.io घटनाओं

मैं अपने सॉकेट.ओओ घटनाओं का परीक्षण कैसे कर सकता हूं?

+0

क्या जुड़ा हुआ लेख पर्याप्त था, या आपने एक अलग दृष्टिकोण का चयन किया है? – Andy

+0

पूछने के लिए धन्यवाद। लेख ठीक दिखता है, लेकिन मुझे पूरा यकीन नहीं है कि यह जाने का तरीका है। जहां तक ​​मैं आपके द्वारा प्रदान किए गए लिंक को बता सकता हूं कि सर्वर क्या भेज रहा है, लेकिन मेरे कोड में तर्क वास्तव में बैकएंड में बहुत सारी चीजें करता है जो तुरंत ग्राहकों को दिखाई नहीं देता है। जैसा कि मैंने उल्लेख किया है, मैंने इसे कुछ अकेले स्टैंड मॉड्यूल में स्थानांतरित कर दिया है, लेकिन अभी भी कुछ हिस्सों हैं जो अनचाहे हैं जो मुझे डरते हैं चुपचाप विफल हो जाएंगे जब मैं कम से कम अप्रत्याशित भविष्य में उन्हें उम्मीद करता हूं। इसलिए जब भी मैं समाधान कर सकता हूं तो आपने मुझे काम प्रदान किया, मुझे लगता है कि बहुत सारे काम की जरूरत है। – vise

+0

जैस्मीन के जासूसों के लिए एक अच्छे उम्मीदवार की तरह लगता है - उत्तर अपडेट किया गया। – Andy

उत्तर

8

इस आलेख को आजमाएं: Socket.IO and Asynchronous Testing with node.js

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

संपादित करें: आप जिसके लिए कोई तत्काल उत्पादन होता है कार्यक्षमता का परीक्षण करने की आवश्यकता है, जैस्मीन BDD spies प्रदान करता है। ये कुछ मापदंडों पारित कर रहे हैं आदि, और परीक्षण के लिए अतुल्यकालिक कॉल मजाक है, साथ ही लेखन अधिक कार्यात्मक परीक्षण के लिए उपयोगी होते हैं कि क्या एक समारोह और परीक्षण "के अंदर देखने" के लिए इस्तेमाल किया जा सकता है: परीक्षण है कि डबल्स

जैस्मीन जासूस हैं एक expecation, mocks में इस्तेमाल होने पर stubs, जासूस, नकली या के रूप में कार्य कर सकते हैं ... जासूसों की जांच की जा सकती है अगर वे कहा जाता है या नहीं और कॉलिंग पैरा क्या थे। एक जासूस के पास निम्नलिखित फ़ील्ड हैं: कॉल किया गया था, कॉलकाउंट, अधिकांश रेसेंट कॉल, और argsForCall (दस्तावेज़ देखें)। जासूस हर spec के अंत में फेंक दिया जाता है।

Docs, an article और एक related SO question

+0

धन्यवाद, मैं इसे देख लूंगा। – vise