2010-02-09 13 views
5

मैं क्विनीट का उपयोग कर रहा हूं, जो उत्कृष्ट है।जावास्क्रिप्ट सैंडबॉक्स इकाई परीक्षण

मैंने अपने जेएस ऐप को (function() {})(); सैंडबॉक्स में संलग्न किया है। यह बहुत सारे कोड को छुपाता है जिसे मैं सार्वजनिक नहीं चाहता हूं, लेकिन मुझे उस कोड का परीक्षण करने की भी आवश्यकता है।

(function() { 

    var PublicAPI = window.PublicAPI = {};   
    PublicAPI.publicFunction = function (foo) { 
     PrivateAPI.privateFunction(foo); 
     return 'bar'; 
    }; 

    var PrivateAPI = {}; 
    PrivateAPI.privateFunction: function (foo) { 
     // Make secret stuff that never gets returned to the public 
     // Could be an AJAX call. 
    } 

})(); 

तो यहाँ मैं आसानी से इकाई परीक्षण PublicAPI.publicFunction, लेकिन मैं कैसे परीक्षण कर सकते हैं PrivateAPI.privateFunction:

यह इस तरह का एक उदाहरण है?

उत्तर

3

This similar question इसे बहुत अच्छी तरह से बताता है ... सबसे आसान तरीका निजी तरीकों से निपटना नहीं है, क्योंकि वे बदल सकते हैं तो वे बदल सकते हैं ... सार्वजनिक विधियां वे हैं जिन्हें परीक्षण की आवश्यकता होती है। यदि आप अपने आंतरिक कार्यों का परीक्षण करना चाहते हैं तो आपको कुनिट के लिए कुछ प्रकार के हुक को छोड़ने की आवश्यकता है।

1

आप नहीं कर सकते। उस दायरे से बाहर पहुंचने का कोई तरीका नहीं है। आपकी एकमात्र उम्मीद यह है कि इसे एकीकरण परीक्षण करना है, यानि वैश्विक रूप से उपलब्ध ऑब्जेक्ट पर परीक्षण कार्य जो आपके आंतरिक कार्यों का उपयोग कर रहे हैं।

बेहतर अभी तक: निजी कार्य न करें। क्या बड़ी बात है?

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