क्या राइनो मोक्स या इसी तरह का उपयोग करते हुए एनएलओजी लॉग विधियों का नकल करना आसान/आसान है?क्या एनएलओजी लॉग विधियों का नकल करना संभव है?
उत्तर
आप केवल आभासी तरीकों का नकल कर सकते हैं। लेकिन अगर आप लॉगिंग के लिए कुछ इंटरफ़ेस बनाते हैं और फिर एनएलओजी का उपयोग करके इसे कार्यान्वित करते हैं तो आप निर्भरता इंजेक्शन का उपयोग कर सकते हैं और आपके परीक्षणों में मैक इंटरफ़ेस का उपयोग यह देखने के लिए किया जा सकता है कि परीक्षण के तहत सिस्टम (एसयूटी) लॉगिंग कर रहा है या नहीं, जिसे आप लॉग इन करने की उम्मीद करते हैं।
public class SUT
{
private readonly ILogger logger;
SUT(ILogger logger) { this.logger = logger;}
MethodUnderTest() {
// ...
logger.LogSomething();
// ...
}
}
// and in tests
var mockLogger = new MockLogger();
var sut = new SUT(mockLogger);
sut.MethodUnderTest();
Assert.That("Expected log message", Is.Equal.To(mockLogger.LastLoggedMessage));
सरल उत्तर, 'नहीं' है। कोड को देखते हुए, निर्भरता-इंजेक्शन समर्थित नहीं है, जो कि एक निरीक्षण की तरह लगता है, विशेष रूप से क्योंकि इसे कार्यान्वित करना मुश्किल नहीं लगता है (पहली नज़र में)।
कॉम इंटरऑप ऑब्जेक्ट्स और कुछ अन्य चीजों का समर्थन करने के लिए प्रोजेक्ट में एकमात्र इंटरफेस हैं। मुख्य Logger
कंक्रीट क्लास न तो एक इंटरफेस लागू करता है, न ही आभासी तरीकों को प्रदान करता है।
आप या तो एक इंटरफ़ेस प्रदान कर सकते हैं, या निर्भरता का नकल करने के लिए मोल्स/टाइपमैक/अन्य अलगाव फ्रेमवर्क का उपयोग कर सकते हैं।
Nuget का उपयोग करना: install-package NLog.Interface
: ILogger = new LoggerAdapter([logger-from-NLog]);
सरल, लेकिन प्रभावी। गीथूब प्रोजेक्ट यहां है यदि कोई यह देखना चाहता है कि यह क्या करता है: https://github.com/uhaciogullari/NLog.Interface – killthrush
- 1. क्या जावा प्रोटोकॉल बफर संदेश का नकल करना संभव है?
- 2. एनएलओजी: इवेंट लॉग
- 3. एनएलओजी
- 4. क्या स्कैला आरईपीएल के आउटपुट को लॉग करना संभव है?
- 5. एनएलओजी
- 6. क्या यूनिट परीक्षणों के तहत एंड्रॉइड सेवाओं का नकल करना संभव है?
- 7. अपवाद लॉग इन करने के लिए एनएलओजी कैसे बताना है?
- 8. क्या आईफ्रेम का अनुकरण करना संभव है?
- 9. क्या @hide एनोटेशन के साथ एंड्रॉइड एसडीके विधियों का उपयोग करना संभव है?
- 10. क्या mvc JsonResult नियंत्रक विधियों पर आउटपुट कैश का उपयोग करना संभव है?
- 11. एएसपी.नेट क्या इवल() का उपयोग कर सर्वर टैग के भीतर विधियों को कॉल करना संभव है?
- 12. रेक कार्यों पर एसक्यूएल प्रश्नों को लॉग करना संभव है?
- 13. एनएलओजी का उपयोग करके अनचाहे अपवाद लॉगिंग? क्या ईएलएमएएच और एनएलओजी एक साथ इस्तेमाल किया जाना चाहिए?
- 14. क्या सी/सी ++ में गो इंटरफ़ेस की नकल करना संभव है?
- 15. एनएलओजी प्रदर्शन
- 16. एनएलओजी में लॉगिंग लॉग संदेश और मैन्युअल रूप से
- 17. एनएलओजी फ़ाइल विभाजन
- 18. एनएलओजी - मैं डेटाबेस
- 19. क्या PHP में array_shift() का उपयोग करना संभव है और कुंजी प्राप्त करना संभव है?
- 20. "लॉग *" का क्या अर्थ है?
- 21. एंटरप्राइज़ लॉगिंग ब्लॉक बनाम एनएलओजी बनाम लॉग 4नेट
- 22. कस्टम एनएलओजी एपेंडर
- 23. एनएलओजी - वैकल्पिक डेटाबेस कॉलम
- 24. एनएलओजी समय स्वरूपण
- 25. रोलओवर फ़ाइल लॉगर के रूप में एनएलओजी का उपयोग
- 26. क्या क्लोजर से जावा विधियों को फिर से परिभाषित करना संभव है?
- 27. क्या विशिष्ट वर्गों या विधियों को लपेटना और उन्हें थ्रेड पर असाइन करना संभव है?
- 28. एक्सएमएल आउटपुट में अपवाद लॉग करने के लिए एनएलओजी को कॉन्फ़िगर करना?
- 29. एमईएफ के साथ एनएलओजी का उपयोग करने का सबसे अच्छा तरीका क्या है?
- 30. क्या jquery.validates को विभिन्न सत्यापन विधियों को ओवरराइड करना संभव है?
http://slf.codeplex.com/ – Jon
पर देखने का प्रयास करें विस्तृत पोस्ट [निर्भरता इंजेक्शन के साथ NLog का उपयोग करना] देखें (http: //blog.tonysneed .com/2011/10/09/का उपयोग कर-nlog-साथ-निर्भरता इंजेक्शन /)। पोस्ट डी इंजेक्शन को डीआई उदाहरण के रूप में उपयोग करता है। –