मैं यह सुनिश्चित करना चाहता हूं कि यदि कोड परीक्षण मोड में चल रहा है, तो यह गलत डेटाबेस तक नहीं पहुंचता है (गलती से)। यह पता लगाने का सबसे अच्छा तरीका क्या है कि कोड वर्तमान में परीक्षण मोड में चल रहा है या नहीं?कैसे पता लगाया जाए कि modea परीक्षण node.js में चल रहा है या नहीं?
उत्तर
जैसा कि पहले से ही टिप्पणी में उल्लेख किया गया है, परीक्षणों के बारे में जागरूक आपके कोड को बनाने का बुरा अभ्यास है। मुझे एसओ और यहां तक कि बाहर भी विषय का पता नहीं लगाया जा सकता है। हालांकि, मैं परीक्षण में लॉन्च होने के तथ्य का पता लगाने के तरीकों के बारे में सोच सकता हूं। मेरे लिए मोचा global
दायरे में नहीं जोड़ता है, लेकिन global.it
जोड़ता है। तो आपका चेक किया जा सकता है
var isInTest = typeof global.it === 'function';
मुझे यकीन है कि आप नहीं global.sinon
और global.chai
जो आप सबसे अधिक संभावना उपयोग अपने Node.js परीक्षण में के लिए चेक जोड़ने के लिए झूठी पता नहीं लगा पाते होने के लिए सुझाव है।
अब यह परीक्षणों के बारे में जागरूक कोड बनाने के बारे में है। अगर कोई टेस्ट तैनाती सेटिंग्स के साथ चलता है तो मैं एक त्रुटि लिखना चाहता हूं। विचार कुछ "खतरनाक" फ़ंक्शन को गलती से गलत तरीके से कॉन्फ़िगर करने के लिए कहा जाता है (जैसे उत्पादन प्रणाली पर एक टेबल छोड़ना)। –
एक और दुरुपयोग ... डेवलपर का वातावरण समस्या निवारण करने तक उत्पादन कॉन्फ़िगरेशन को संबोधित नहीं करना चाहिए। डेवलपर की कॉन्फ़िगरेशन केवल स्थानीय पर्यावरण या कम से कम चरण तक पहुंचने में सक्षम होना चाहिए, लेकिन उत्पादन नहीं। फिर भी, यह सभी टिप्पणियां और सलाह है, उत्तर प्रदान किया जाता है। समुदाय को यह जानना न भूलें कि यह आपकी आवश्यकताओं के अनुरूप है या गलत है –
यह 'समस्या निवारण' मामले है, डेवलपर्स भूल जाते हैं कि वे वास्तविक डेटाबेस से जुड़े हुए हैं और एक परीक्षण चलाते हैं जो संभावित रूप से डेटा को नष्ट कर देता है ... –
process.argv
का निरीक्षण मेरे अनुभव में एक अच्छा दृष्टिकोण है।
अगर मैं console.log(process.argv)
एक परीक्षण मैं निम्नलिखित मिल दौरान:
[
'node',
'/usr/local/bin/gulp',
'test',
'--file',
'getSSAI.test.unit.js',
'--bail',
'--watch'
]
जिसमें से आप कि घूंट देख सकते हैं इस्तेमाल किया जा रहा है। yargs का उपयोग करके यह एक बहुत ही आसान व्याख्या करता है।
मैं किरील से दृढ़ता से सहमत हूं और सामान्य रूप से कोड को इस तथ्य से अवगत नहीं होना चाहिए कि इसका परीक्षण किया जा रहा है (आपके मामले में शायद आप अपने डीबी बाध्यकारी/कनेक्शन में एक कन्स्ट्रक्टर के माध्यम से कनेक्शन कर सकते हैं?), लॉगिंग जैसी चीजों के लिए मैं देख सकता हूं कि आप इसका पता क्यों लगा सकते हैं।
एकमात्र कारण है कि मुझे यह जांचने की आवश्यकता है कि एप्लिकेशन परीक्षण के तहत चल रहा है या नहीं, यह जांच है कि मैं उत्पादन डेटाबेस से कनेक्ट नहीं हूं, क्योंकि परीक्षण डेटाबेस को साफ़ करते हैं। सिर्फ शुद्ध परावर्तक, क्योंकि यह कभी नहीं होना चाहिए - लेकिन इस व्यवसाय में 30 वर्षों में, मैंने देखा है कि बहुत सी चीजें गलत हैं जिन्हें "कभी नहीं होगा" के रूप में घोषित किया गया था। –
- 1. ओएसएक्स: मिशन नियंत्रण चल रहा है या नहीं, इसका पता कैसे लगाया जाए?
- 2. कैसे पता चलेगा कि MediaRecorder चल रहा है या नहीं?
- 3. पता कैसे लगाया जाए कि नोड की प्रक्रिया। स्टडआउट पाइप किया जा रहा है या नहीं?
- 4. पता कैसे लगाया जाए कि स्मृति ढेर से है या नहीं? (ढेर या स्थिर चर नहीं)
- 5. वीडियो व्यू वीडियो या बफरिंग खेल रहा है या नहीं, इसका पता कैसे लगाया जाए?
- 6. आईओएस 11 में स्लाइड के रूप में कोई और ऐप चल रहा है या नहीं, इसका पता कैसे लगाया जाए?
- 7. यह पता लगाना कि संगीत चल रहा है या नहीं?
- 8. ब्राउज़र से, यदि उपयोगकर्ता रिमोट डेस्कटॉप सत्र में चल रहा है, तो कैसे पता लगाया जाए?
- 9. कैसे पता लगाया जाए कि संग्रह में विशिष्ट प्रकार का उदाहरण है या नहीं?
- 10. कैसे पता लगाया जाए कि यूनिकोड कैरेक्टर लापता-प्रतीक वर्ग में मानचित्र करता है या नहीं?
- 11. सी #: स्क्रीन रीडर चल रहा है या नहीं पता कैसे?
- 12. कैसे पता लगाया जाए कि डिवाइस पर iCloud खाता बदल गया है या नहीं?
- 13. रनटाइम पर कैसे पता लगाया जाए कि प्रतीकों को छीन लिया गया है या नहीं?
- 14. कैसे पता लगाया जाए कि संकलन समय पर एक प्रकार लैम्ब्डा अभिव्यक्ति है या नहीं?
- 15. कैसे पता लगाया जाए कि वर्तमान पृष्ठ केकपीएचपी वाला मुखपृष्ठ है या नहीं?
- 16. कैसे पता लगाया जाए कि एक निर्देशित ग्राफ चक्रीय है या नहीं?
- 17. आईओएस कैसे पता लगाया जाए कि ऐप को
- 18. मुझे कैसे पता चलेगा कि कॉच डीबी ऊपर है और चल रहा है या नहीं?
- 19. रीयलटाइम पर कैसे पता लगाया जाए IOS
- 20. माउस क्लिक कानूनी या स्वचालित है या नहीं, इसका पता कैसे लगाया जाए?
- 21. क्या यह पता लगाने का एक विश्वसनीय तरीका है कि io.js या node.js चल रहा है या नहीं?
- 22. मुझे कैसे पता चलेगा कि मेरा ऐप रोबोलेक्ट्रिक के साथ चल रहा है या नहीं?
- 23. कैसे जांचें कि डॉकर डिमन चल रहा है या नहीं?
- 24. बैश में एक फ़ाइल यूटीएफ -8 बीओएम है या नहीं, इसका पता कैसे लगाया जाए?
- 25. कैसे पता चलेगा कि मेरा पृष्ठ किसी फेसबुक आईफ्रेम में चल रहा है या नहीं
- 26. कैसे जांचें कि डॉकर चल रहा है या नहीं
- 27. कैसे जांचें कि एक मनमानी पीआईडी Node.js का उपयोग कर चल रहा है या नहीं?
- 28. आईफोन में रेटिना डिस्प्ले है या नहीं, इसका पता कैसे लगाया जाए?
- 29. NUnit नहीं चल रहा है सूट परीक्षण
- 30. टॉमकैट कैसे चल रहा है या नहीं
इससे बचने का सबसे अच्छा तरीका डेटा लेयर को वास्तव में नकल करना होगा –
आप अपने परीक्षण कहां चला रहे हैं कि उनके पास उत्पादन संसाधनों तक पहुंच है? इसे नेटवर्किंग स्तर पर हल किया जाना चाहिए। उत्पादन डेटाबेस केवल उत्पादन मशीनों से कनेक्शन स्वीकार करना चाहिए। –
... यह उत्पादन वातावरण नहीं हो सकता है। मैं यह सुनिश्चित करना चाहता हूं कि टेस्ट पर्यावरण के साथ परीक्षण चलें। यदि नहीं, तो मैं एक त्रुटि फेंक दूंगा। –