मजाक मैं एक स्थिर वर्ग कि winspool से कुछ देशी तरीकों लपेटता है:एक स्टेटिक कक्षा
public static class WinSpool
{
[DllImport("winspool.drv")]
public static extern int OpenPrinter(string pPrinterName, out IntPtr phPrinter, IntPtr pDefault);
...
//some more methods here
}
मैं इकाई परीक्षण के लिए उन्हें नकली चाहते हैं, लेकिन इस के लिए एक पैटर्न नहीं पा सके। (क्या हर कोई स्थैतिक कक्षाओं से बचता है?)
मुझे यह विडंबनापूर्ण लगता है कि कैसे स्थिर सदस्य "फंसे हुए" हैं, जब हमें वास्तव में जो फहराया जाना चाहिए, वे ढांचे को मजाक कर रहे हैं जो स्थिर सदस्यों का नकल नहीं कर सकते हैं। आखिरकार, यदि टाइपमैक ऐसा कर सकता है, तो ओएसएस ढांचे क्यों नहीं कर सकते हैं? –
इसका कारण यह है कि सबसे मजाक करने वाले ढांचे प्रॉक्सी पैटर्न का उपयोग करके मैक्स को लागू करते हैं, जो अनिवार्य रूप से विरासत की आवश्यकता होती है, और निश्चित रूप से स्थिर वर्गों को विरासत में नहीं लिया जा सकता है। आईपी इंजेक्शन के साथ विधि कॉल को पुनर्निर्देशित करके टाइपपेक एक पूरी तरह से अलग दृष्टिकोण का उपयोग करता है, जो इसे स्थिर कॉलों का नकल करने की शक्ति देता है। – womp
क्योंकि यह * मुफ्त में विकसित होने के लिए बहुत महंगा है * (http://stackoverflow.com/questions/1534119/is-there-any-open-source-mocking-framework-resembling-typemock) – Graviton