में निजी कार्यों का परीक्षण करना मैं निजी कार्यान्वयन से अपने सार्वजनिक इंटरफ़ेस को अलग करने के लिए जावास्क्रिप्ट में मॉड्यूल पैटर्न का उपयोग कर रहा हूं। मैं जो कर रहा हूं उसे सरल बनाने के लिए, मेरा कोड एक चार्ट उत्पन्न करता है। चार्ट कई भागों (axises, लेबल, साजिश, कथा, आदि) की तरह मेरे कोड दिखता है के होते हैं:जावास्क्रिप्ट
var Graph = function() {
var private_data;
function draw_legend() { ... }
function draw_plot() { ... }
function helper_func() { ... }
...
return {
add_data: function(data) {
private_data = data;
},
draw: function() {
draw_legend()
draw_plot()
}
}
}
कुछ लोगों को केवल अपनी कक्षाओं की सार्वजनिक इंटरफ़ेस है, जो समझ में आता है परीक्षण वकील, लेकिन मैं था वास्तव में प्रत्येक घटक को अलग-अलग परीक्षण करने के लिए कुछ परीक्षणों में शामिल होना पसंद है। अगर मैं अपना draw_legend() फ़ंक्शन खराब करता हूं, तो मैं उस परीक्षण को असफल करना चाहता हूं, सार्वजनिक ड्रॉ() फ़ंक्शन के लिए परीक्षण नहीं। क्या मैं यहां गलत ट्रैक पर हूं?
मैं विभिन्न वर्गों में से प्रत्येक घटक को अलग कर सकता हूं, उदाहरण के लिए एक लीजेंड क्लास बनाएं। लेकिन यह कभी-कभी कोड की 5-10 लाइनों के लिए कक्षा बनाने के लिए मूर्खतापूर्ण प्रतीत होता है, और यह बदसूरत होगा क्योंकि मुझे निजी राज्य के समूह में गुजरना होगा। और मैं अपने सहायक कार्यों का परीक्षण करने में सक्षम नहीं होगा। क्या मुझे वैसे भी ऐसा करना चाहिए? क्या मुझे इसे चूसना चाहिए और केवल सार्वजनिक ड्रॉ() का परीक्षण करना चाहिए? या क्या कोई और समाधान है?
यह उपयोगी हो सकता है [कैसे जावास्क्रिप्ट में यूनिट परीक्षा निजी कार्य के लिए] (http://philipwalton.com/articles/how-to-unit-test-private-functions-in-javascript/) – amirnissim