2012-03-01 6 views
5

के साथ क्लाइंट-साइड जावास्क्रिप्ट कोड का परीक्षण करना: क्लाइंट-साइड जावास्क्रिप्ट कोड (ब्राउज़र में चलता है, jquery आदि का उपयोग करता है)। वर्तमान में कोड Rhino और envjs के साथ परीक्षण किया गया है। हम node.js. पर स्विच करना चाहते हैं हालांकि, कुछ शोध के बाद, किसी भी envjs को पूरक नहीं मिला जो कि ब्राउज़र को अनुकरण करता है।जैस्मीन और node.js

node.js चल रहा जबकि "जैसा है", alert() या window की तरह यहां तक ​​कि बुनियादी क्षमताओं लापता हैं।

क्या कोई मानक बंडल है, Rhino & envjsnode.js के लिए कृपया कोई मानक बंडल है?

+0

के लिए अपने ब्राउज़र परीक्षण चलाने के लिए इस सॉफ्टवेयर का एक बहुत ही अविकसित हिस्सा है। विजुअल स्टूडियो में अपने अन्य परीक्षणों के साथ अपने जेएस परीक्षणों को चलाने के लिए हमेशा एक रास्ता खोजने के लिए मुझे हमेशा के लिए ले लिया। – Zoidberg

उत्तर

9

आप zombie.js का उपयोग कर सकते हैं, जिसमें आपके पास परीक्षण के लिए आवश्यक सब कुछ है। या आप node.js में एक DOM प्राप्त करने के लिए jsdom (जो zombie.js आंतरिक रूप से उपयोग करता है) का लाभ उठा सकते हैं, और उस DOM के विरुद्ध अपने परीक्षण निष्पादित कर सकते हैं।

मैं testling भी अनुशंसा कर सकता हूं, जो सभी सामान्य ब्राउज़रों में आपके विनिर्देश के अनुसार परीक्षण निष्पादित करता है - कोड आपकी सेवा के विरुद्ध वास्तविक ब्राउज़र में चल रहा है।

यहाँ jsdom के साथ एक सरल उदाहरण है:

var jsdom = require("jsdom"); 

jsdom.env(url, ["http://code.jquery.com/jquery.min.js"], function(err, window) { 
    // jQuery is at window.$ 
}); 

के बजाय ऊपर url, आप एक HTML दस्तावेज़, या टुकड़ा हो सकता था।

आप एक पृष्ठ के लोड कर सकते हैं और किसी भी बाह्य संसाधनों को लाने के बजाय jsdom के लिए सीधे jQuery आदि उपलब्ध कराने के:

var jsdom = require("jsdom").jsdom, 
    doc = jsdom(markup), 
    window = doc.createWindow(); 

// Do your stuff on window, jsdom will have fetched all the scripts referenced in the markup 

फिर, zombie.js आंतरिक jsdom उपयोग करता है और यह एक बेहतर प्रारंभिक बिंदु हो सकता है।

+0

टेस्टलिंग मिनटों की आपकी खपत क्या है? मैं हमेशा चिंतित हूं कि मैं अपने परीक्षण "बहुत ज्यादा" चलाऊंगा और "बहुत अधिक" मिनटों का उपभोग करूंगा – Raynos

+0

रेनोस: मैंने वास्तव में इसे अभी कोशिश की है। मैं लॉन्च करने की कगार में हूं और जैसे ही व्यवसाय बंद हो जाता है, मुझे यकीन है कि टेस्टलिंग लागत के लायक होंगे, क्योंकि मुझे मैन्युअल ब्राउज़र परीक्षण से नफरत है। :-) –

2

इस

  1. जैसे ही आप परीक्षण ब्राउज़र कोड के लिए दो विकल्प हैं। इसे ब्राउज़र में चलाएं। ब्राउजर को अनुकरण करने से आपका कोड काम नहीं करता है।
  2. वहाँ यह करने के लिए विकल्प हैं जैसे phantom/zombie

बेशक एक उपकरण का उपयोग करें, आप किसी भी गैर-ब्राउज़र संबंधित कोड निकालने, उनके लिए एक इकाई परीक्षण सूट लिखने और नोड में चला सकते हैं। यह सिर्फ जावास्क्रिप्ट है।

तुम भी testling तरह प्रबंधित सेवाओं का उपयोग कर सकते हैं