मैं कुछ यूनिट परीक्षणों में माइक्रोसॉफ्ट फॉक्स का उपयोग कर रहा हूं जिन पर मैं काम कर रहा हूं। मेरे इंटरफेस इस तरह दिखता है:कोई एक स्टब का संदर्भ कैसे देता है जिसमें माइक्रोसॉफ्ट फॉक्स का उपयोग करके खुद का सामान्य पैरामीटर होता है?
interface ISecuredItem<TChildType> where TChildType : class, ISecuredItem<TChildType>
{
SecurityDescriptor Descriptor { get; }
IEnumerable<TChildType> Children { get; }
}
इस का एक विशिष्ट कार्यान्वयन लगता है:
class RegistryKey : ISecuredItem<RegistryKey>
{
public SecurityDescriptor Descriptor { get; private set; }
public IEnumerable<RegistryKey> Children { get; }
}
मैं माइक्रोसॉफ्ट गलत के साथ इस इंटरफ़ेस का उपयोग करना चाहते हैं, और यह मेरे लिए एक ठूंठ उत्पन्न की है। समस्या यह है कि फॉर्म फक्स का उपयोग StubInterfaceNameHere<>
है, इसलिए उपर्युक्त उदाहरण में आप StubISecuredItem<StubISecuredItem<StubISecuredItem<StubISecuredItem....
ऐसा कुछ करने की कोशिश कर रहे हैं? यदि हां, तो मैं इस तरह नकली का उपयोग कैसे करूं?
यह निश्चित रूप से चाल करेगा, लेकिन इसे परीक्षण परियोजना में स्टब/नकली के रूप में इंटरफ़ेस को कार्यान्वित करने की आवश्यकता है। मुझे नहीं पता कि यह विचार है ... –
मैं कल्पना कर सकता हूं कि यह विचार नहीं है .. लेकिन मुझे कोई अन्य समाधान नहीं दिखाई दे रहा था। जब आप स्रोत कोड को देखते हैं जो फॉक्स फ्रेमवर्क उत्पन्न करता है, तो सामान्य पैरामीटर StecISecuredItem की नहीं, ISecuredItem प्रकार का है। मैं लगभग कहूंगा कि ढांचे में एक बग है। और परीक्षण प्रोजेक्ट में कार्यान्वयन में सभी विधियों को एक NotImplementedException फेंक सकता है, इसलिए इसे बनाने के लिए अधिक समय नहीं लगाना चाहिए। –
मैं नहीं, मैं पूरी तरह से सहमत हूं। उत्तर समाधान जो स्वचालित रूप से मेरे दिमाग में आया वह वह है जिसे आपने बताया था। –