मुझे पता है कि यह जरूरी नहीं है कि आप जिस उत्तर की तलाश कर रहे हैं, लेकिन जो मैंने पाया है वह यह है कि अधिकांश समय यदि कोई निजी फ़ंक्शन परीक्षण के लायक है, तो यह अपनी फ़ाइल में होने के लायक है।
उदाहरण के लिए, सार्वजनिक रूप से एक ही फ़ाइल में निजी तरीके रखने के बजाय इस तरह ...
src / बात / PublicInterface.js
function helper1 (x) {
return 2 * x;
}
function helper2 (x) {
return 3 * x;
}
export function publicMethod1(x) {
return helper1(x);
}
export function publicMethod2(x) {
return helper1(x) + helper2(x);
}
... आप इसे इस तरह से विभाजित करते हैं:
src / बात / PublicInterface.js
import {helper1} from './internal/helper1.js';
import {helper2} from './internal/helper2.js';
export function publicMethod1(x) {
return helper1(x);
}
export function publicMethod2(x) {
return helper1(x) + helper2(x);
}
src / बात / आंतरिक / helper1.js
export function helper1 (x) {
return 2 * x;
}
src / बात / आंतरिक / helper2.js
export function helper2 (x) {
return 3 * x;
}
इस तरह, आप आसानी से परीक्षण कर सकते हैं helper1
और helper2
जैसा कि, रेवर और अन्य "जादू" का उपयोग किए बिना (जो, मैंने पाया है, डिबगिंग करते समय अपने स्वयं के दर्द बिंदु हैं, या जब आप टाइपस्क्रिप्ट की ओर अपना कदम बनाने की कोशिश करते हैं, तो गरीब का उल्लेख करने के लिए नहीं। नए सहयोगियों के लिए समझ)। और उन्हें उप-फ़ोल्डर में बुलाया जा रहा है internal
, या ऐसा कुछ, अनजाने स्थानों में उनके आकस्मिक उपयोग से बचने में मदद करेगा।
पुनश्च: "निजी" तरीकों के साथ एक अन्य आम मुद्दा यह है कि अगर आप परीक्षण करना चाहते हैं publicMethod1
और publicMethod2
और सहायकों नकली, फिर से, आप सामान्य रूप से Rewire की तरह कुछ ऐसा करने की जरूरत है। हालाँकि, यदि वे अलग-अलग फ़ाइलों में हैं, तो आप इसे करने के लिए प्रॉक्सी का उपयोग कर सकते हैं , जो कि रेवर के विपरीत, आपकी निर्माण प्रक्रिया में किसी भी बदलाव की आवश्यकता नहीं है, पढ़ना आसान है और डीबग करना आसान है, और टाइपस्क्रिप्ट के साथ भी अच्छा काम करता है।